Excel VBA 質問スレ Part69

■ このスレッドは過去ログ倉庫に格納されています
2020/12/13(日) 00:22:23.67ID:Fd224klc0
!extend:checked:vvvvv:1000:512
↑同じ内容を2行貼り付ける

ExcelのVBAに関する質問スレです
コード書き込みや作成依頼もOK

※前スレ
Excel VBA 質問スレ Part68
https://mevius.5ch.net/test/read.cgi/tech/1598756127/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
2020/12/23(水) 11:46:56.79ID:o2ScoeZIM
>>98
RangeをCellsに変えてみ
2020/12/23(水) 15:07:17.52ID:Xl4mgk4Md
いつものあいつ確定
2020/12/23(水) 15:43:35.91ID:FcIaoKlm0
いつものあいつが好きな奴確定
2020/12/23(水) 15:51:50.15ID:Xth9/5BD0
いつものあいつは人気者
https://store.line.me/stickershop/product/1265677/ja
2020/12/23(水) 18:16:20.38ID:j3OsNt/k0
>>99
ありがとうございます
2020/12/23(水) 18:19:10.98ID:j3OsNt/k0
>>98
早速変更したらできました!!
本当に感謝します
自分の初心者じみた凡ミスですね
ありがとうございます
こころの優しい御仁
2020/12/23(水) 20:48:51.52ID:ZakT/bFP0
初心者じみた…?
2020/12/23(水) 21:42:26.23ID:+z0aXtBh0
ネタかと思って傍観していたが、久しぶりに質問スレっぽくてホッコリしたわ
2020/12/23(水) 23:00:34.90ID:igbw91HoM
完全にいつものあいつじゃん
2020/12/23(水) 23:04:58.03ID:ZakT/bFP0
一見相手を持ち上げてるようで馬鹿にしてるいつもの感じ
2020/12/24(木) 18:03:54.48ID:ib8ApZa60
xlsで共用管理してた物品リストを
現場に飛ばされて激怒した仕事できないおばちゃんが
シートの保護にパスワードをかけてそのまま年末休みに入った
ネットで拾ったプロージャで
パスワードを解除した俺が神扱い
2020/12/24(木) 19:35:35.16ID:i3RIeYBl0
ならこんなところで虚しいアピールしなくていいよ
2020/12/24(木) 20:31:22.57ID:OvKwRG9WM
首案件か…
2020/12/24(木) 21:20:52.76ID:6nJjzXUX0
保護かけただけなら実害ないじゃないか
2020/12/24(木) 23:15:25.57ID:ViSodmdc0
許可なく改竄するのってどうかな
2020/12/25(金) 00:16:09.85ID:OfYljKJA0
ユーザーフォーム1のボタンを押すと開始する処理をユーザーフォーム2から起動する方法ってない?
クラスに書いとかんとだめなのかな
2020/12/25(金) 02:22:11.64ID:Zgx05nqca
書く場所かえればいいのに、いつもの人か?
2020/12/25(金) 02:34:13.17ID:oy51KHzs0
標準モジュールに書いてCallではダメか?
2020/12/25(金) 04:03:39.34ID:OfYljKJA0
>>116
そっか、たしかに標準モジュールに移植すれば良かったか
2020/12/25(金) 19:42:46.45ID:M+L+LuRT0
>>117
Privateを取っ払ってただのSubにすれば、
UserForm1.ボタン_Clickで実行できる。
119デフォルトの名無しさん (ワッチョイ 8b63-p1zl)
垢版 |
2020/12/26(土) 11:08:58.12ID:xVJ70HL70
どなたかお教えください。
e-Gov法令検索
https://elaws.e-gov.go.jp/
というサイトでエクセルにリスト化されている法令を検索し,
ダウンロードすることを試みたいと考えております。
.Navigate でサイトを開き,
.document.getElementById("searchTextBox").Value = "法令名"
.document.getElementById("searchBtn").Click
で,該当の法令を検索させるまではできました。
その後,検索結果を見つけてURLを取得するところでつまずいております。
.document.getElementsByTagName
とかをどのように指定したらよいのでしょうか?
どうぞよろしくお願いいたします。
2020/12/26(土) 13:00:08.72ID:JDXDJsEV0
>>119
そよのサイトでリスト化されているもののダウンロードはエクセルには向いてないので
手作業でやったほうがいいだろう
2020/12/26(土) 14:44:21.47ID:1Jq10AwVM
Javaを覚えろってことか
122デフォルトの名無しさん (ワッチョイ 97f1-evwY)
垢版 |
2020/12/26(土) 14:52:02.96ID:CuJQon1q0
Javaを覚えろってことよ
123>>119 (ワッチョイ 8b63-p1zl)
垢版 |
2020/12/26(土) 15:35:46.04ID:xVJ70HL70
>>120
アドバイスありがとうございます。
しかしながら100件くらいあって,定期的にチェックして(法令が更新されることがあるので)ダウンロードするとなると
つらいです。
なんとかどうぞお願いします。
2020/12/26(土) 16:34:12.06ID:AsvwShK0H
>>123
ちょっとやってみるから、何か一つ検索キーワード教えて
あと検索条件はデフォルトのままでいいの?
125>>119 (ワッチョイ 8b63-p1zl)
垢版 |
2020/12/26(土) 18:32:04.58ID:xVJ70HL70
>>124さん
どうもありがとうございます。
キーワードは
予防接種法
検索条件はデフォルトのままでいいです。
お願いします。
2020/12/26(土) 21:38:03.20ID:AsvwShK0H
>>125
ざっくり見たところ、そのサイトはスタイルシートで検索結果を渡してWebAPIでダウンロードする方式だからGetElementsなどは使えないしURLもどこにも書いてない
WebAPIを呼び出すフォーマットは、例えばこんな感じになってる
https://elaws.e-gov.go.jp/download?law_unique_id=323AC0000000068_20150801_000000000000000&;file_type=PDF_H1
このURLをブラウザのアドレスバーに入れるとPDFのダウンロードが始まる

VBAでできないことはないけど難易度はけっこう高い
素人にはおすすめしない
2020/12/27(日) 00:06:28.37ID:V6kYHqJF0
Ruby なら、curl コマンドとか、open-uri でダウンロードできる

require 'open-uri'

html = `curl ttps://何々`

url = "ttps://何々"
html = open( url )
puts html.read
128デフォルトの名無しさん (ワッチョイ 51da-64+e)
垢版 |
2020/12/27(日) 01:58:09.26ID:s6cy7Ti00
なぜVBAスレでrubyが
2020/12/27(日) 05:17:11.18ID:V6kYHqJF0
Windows 10 にも、curl が入った

コマンドプロンプトで、
where curl
と入力すると、

C:\Windows\System32\curl.exe
2020/12/27(日) 08:26:34.69ID:CaXXLtf40
なら、
コマンドプロンプト
require
この3つをNGワードに追加。捗る。
2020/12/27(日) 08:54:36.12ID:73ofl+2yH
URLを指定してダウンロードする方法の質問なんか誰もしてないのに、いきなり独り言
ルビー使いはあたおかだとよくわかる
2020/12/27(日) 09:21:25.61ID:iG00duHM0
名門校で球拾いより弱小校でエースのほうが楽しいから
まあ関係のない部活に来てたらウザがられるだけだが
2020/12/27(日) 09:39:02.91ID:DRufeyQV0
初心者がもの凄いものをいきなり作ろうとしてここに質問すればできると思っているいつもの人
2020/12/27(日) 10:57:38.42ID:Km9iTMMx0
>>118
おおおお、そういうことかー
これなら標準モジュールに移植しなくても別のユーザーフォームから起動できるね
ありがとうございます!こういう豆知識待ってました
135デフォルトの名無しさん (ワッチョイ 47e6-+OY0)
垢版 |
2020/12/27(日) 18:38:53.38ID:kvcCvRIC0
privateの意味は豆知識ではなく一般常識ては?
2020/12/28(月) 00:09:12.39ID:eYw4/aNg0
ユーザーフォーム2からユーザーフォーム1
ボタンを押したようにできることが豆知識だったのよ
自分にとってはね
2020/12/28(月) 02:13:46.08ID:zq2Mh9UF0
>>133
初心者ではなく初心者から脱却する気の無い人間が
2020/12/28(月) 11:52:39.77ID:D2Ae0vPz0
>>136
分かりにくくなるだろうな
そのフォーム1の処理の中にフォーム2の処理が混ざっていて・・・みたいな
2020/12/28(月) 12:18:01.21ID:tqv11FjK0
単体で使いたい時もあるけど
ある処理の部品としても使いたいとかかな
2020/12/28(月) 12:46:17.64ID:2cxQATNW0
それなら共通部品として切り出して
フォーム1から呼ぶ、2から呼ぶってしないと後々メンテで死ぬパターン
141デフォルトの名無しさん (アウアウウー Saed-ls+h)
垢版 |
2020/12/28(月) 20:20:11.64ID:VGvj7ZmYa
今FTPするのに諸事情あってwininetを利用してるんだけど
これってファイルのディレクトリ移動は無理?
ちなみにLINUXサーバ

例えば
/work/testdir/test.log

/work/movetodir/test.log
って感じで移動したい
コピーした後deleteすればいいのでコピーでもオッケー
今はスマホからならなので詳細ソースは勘弁して

試したのはFtpPutFileやFtpGetFileで
fromとtoをそれぞれファイル名やフルパスで入れ替えたりしてみたんだけど
まぁだめだった
FtpMoveFile的なものはないですか?
142デフォルトの名無しさん (アウアウウー Saed-ls+h)
垢版 |
2020/12/28(月) 20:23:27.00ID:VGvj7ZmYa
ちなみにBASPやWINSCPとかは規約上使用できないです
ない場合はローカルに一時的にgetした後別のディレクトリにPutすると言う力技も考え中
143デフォルトの名無しさん (アウアウウー Saed-ls+h)
垢版 |
2020/12/28(月) 20:51:35.01ID:VGvj7ZmYa
なんとなく自己解決
やはりFTPの仕様上Moveはダメっぽい
力技しか無いかなぁ
2020/12/29(火) 04:24:04.54ID:r4ksfnFx0
シートを開いたときにシート上のコンボボックスにリストを読み込ませたいんですけど、
シート上にある文字列を読み込むのではなくマクロのみで特定の文字列を読み込ませることって出来ますか?
2020/12/29(火) 04:50:38.55ID:r4ksfnFx0
DirectXのコンボボックス使えば一発でした……すみません……
2020/12/29(火) 06:16:00.81ID:r4ksfnFx0
ActiveXのコンボボックス2つを設置し、以下のようにシートのところに記述後、ComboBox1のプルダウンボタンをクリックすると、

実行時エラー "380":
Valueプロパティを設定できません。プロパティの値が無効です

と表示され、「ComboBox2.Value = "G6"」がハイライト表示になるのですが、対処法が分かりません。ご教授お願い致します。

---------------------------------------------------

Option Explicit

Private Sub ComboBox1_Change()
ComboBox2.Value = "G6"
End Sub

Private Sub ComboBox1_DropButtonClick()
ComboBox1.List = Array("A", "B", "C", "D")
End Sub

Private Sub ComboBox2_DropButtonClick()
If ComboBox1.Value = "A" Then
ComboBox2.ListFillRange = "G6:G9"
Else
ComboBox2.ListFillRange = "G6:G8"
End If
End Sub
2020/12/29(火) 06:25:34.42ID:r4ksfnFx0
すみません、Stylesプロパティが2 - fmStyleDropDownListだったからValueに代入できなかったんですね……
ComboBox2.ListIndex = 0 にしたら直りました。お目汚しすみません。
2020/12/29(火) 15:15:22.81ID:eRbfzaAa0
コンボ1→鈴木一郎
コンボ3→鈴木専務
      鈴木部長
      須藤係長
      杉村課長
コンボ3には先頭一致で「す」を検索し絞り込みで表示したいのですがむずかしいでしょうか?あるいは漢字一文字で検索でもいいのですがMatchFound関数を使用するのではないかと思うのですが検討もつきません
Option Explicit
Private Sub ComboBox2_Change()
End Sub
Private Sub UserForm_Initialize()
Dim r As Long
ComboBox1.ColumnCount = 2
For r = 1 To Sheet3.Range("A" & Rows.Count).End(xlUp).Row
ComboBox1.AddItem Range("DB!A" & r).Value
ComboBox1.List(r - 1, 1) = r 'リストの2列目にシートの何行目かを記憶
Next
End Sub
Private Sub ComboBox1_Change()
Dim r As Long
Dim c As Integer
r = ComboBox1.List(ComboBox1.ListIndex, 1) '選択したリストの2列目(シートの何行目か)
ComboBox2.Clear
For c = 2 To Sheet3.Cells(r, Columns.Count).End(xlToLeft).Column
ComboBox2.AddItem Sheet3.Cells(r, c).Value
Next

End Sub
2020/12/29(火) 15:20:48.46ID:xvN7YPpo0
インデントしてない時点で(キリ
2020/12/29(火) 15:24:36.38ID:1ep2xIo7M
>(キリ
ウザっ
2020/12/29(火) 16:02:20.40ID:NKmqU0kK0
>>148
リスト全部チェックして一致したものを追加するなりシート上でフィルタした結果を追加するなりしたらいいんでないの
2020/12/29(火) 16:26:47.99ID:NKmqU0kK0
思ったんだが、そのコード自分で読み込んだり動き確認したりしてないだろう…
2020/12/29(火) 16:30:16.32ID:9/T630Lp0
質問するのが趣味なんだろ
2020/12/29(火) 16:53:27.47ID:dODwImwo0
読み仮名でソートすればいいんでないの
エクセルの並び替えもこうなるし


大学(おおきいで変換)


大学(だいで変換)
2020/12/29(火) 18:16:49.35ID:eRbfzaAa0
すいません!
質問するレベルにも到達してなくて
シート上で一致させるなら簡単ですね
質問が趣味ではないのですが
業務で必要なもので初心者ながら悪戦苦闘しています
質問のしかたが悪かったと思います
ちょっと考えて質問したいと思います
2020/12/29(火) 18:20:31.42ID:U6Tn+IN30
いつものあいつだろ
2020/12/29(火) 18:24:55.74ID:NKmqU0kK0
いつものやつだった・・・
2020/12/29(火) 18:26:09.51ID:eRbfzaAa0
前に質問した時も
誰かと勘違いされたような・・・
誰ですか?
VBAスレには
4回ぐらいしか書き込んだりしてないのですが?
どういった人と勘違いしてるんですか?
荒らしみたいな人いるんですか?
2020/12/29(火) 18:57:29.26ID:lS8hY7UX0
話題に上ると嬉しそうに反応すんなよw
2020/12/29(火) 20:40:10.06ID:eRbfzaAa0
>>159
だからここには4回ぐらいしか来たことない
どういったら信じてくれるのかな
初めてだわ
荒らしと間違えられたの
どんな荒らしなの?
普通に書き込んでるつもりなんだけど?
何か気に入らなかった?
3日前ぐらいに書き込んだ時も勘違いされたけど
ホント勘弁して
2020/12/29(火) 22:12:23.41ID:DC9TsoaB0
荒らしと同じようなことを書くから間違われるのでは?
2020/12/29(火) 22:16:06.03ID:mchvBN/f0
真っ赤な帽子にキラリとヒカル
2020/12/29(火) 22:16:31.70ID:eRbfzaAa0
>>161
どこがどう悪かったのか教えてください
2020/12/29(火) 22:29:26.63ID:dODwImwo0
おかしな事言う人がいるな
でスルーしてたらいいと思うよ
今のままだと思うツボ
2020/12/29(火) 23:51:56.35ID:xvN7YPpo0
>>78
わからぬ。ホムペとかに時々セミナーの写真とか載ってるからそれを見て判断
性格まで瓜二つだからすぐわかるぜw
2020/12/30(水) 01:27:15.02ID:RXqudRq00
俺も前になんかの質問したときにいつものアイツって言われた事があったから逆になんでもかんでもいつものアイツって言いたがる荒らしが常駐してるもんだと思ってた
2020/12/30(水) 01:52:55.19ID:Oh92F1JH0
シートを開くと「オブジェクトが必要です。」だの「メソッドまたはデータメンバが見つかりません。」だのと表示されるんですけど、特に修正することもなく動作している(ように見える)んですけど、これ何が悪いんですかね?
2020/12/30(水) 03:31:25.87ID:AqLm+Pp2M
PERSONALに余計な書き込みしちまっつてるんじゃね。
再表示させて全部消すんだ。
2020/12/30(水) 03:53:07.20ID:Oh92F1JH0
Personal.xlsですかね?
探しましたがそもそもファイル自体存在しないみたいです……
2020/12/30(水) 03:58:33.29ID:Oh92F1JH0
なんかよく分かんないんですけどエラー行で指定してたコンボボックスを消して再設置したら直りました
助言ありがとうございました
2020/12/30(水) 05:38:22.32ID:AqLm+Pp2M
毎回コンボボックス言ってるなあんた
2020/12/30(水) 05:47:42.87ID:Oh92F1JH0
なんかコンボボックスってクセ強くないですか?
すごく弄りにくくてややこしいです
2020/12/30(水) 08:41:09.68ID:mfFqR3/N0
クセ強いって言うか、1クリックで2回イベント発動するのがなぁ・・
いちいちIf Flag Then Exit Sub とかいれて、
無理矢理1回しか動かないようにしてるけど、
他にいい方法ないもんかね
2020/12/30(水) 08:43:56.99ID:mfFqR3/N0
あ、直前に Flag = Not Flag な
2020/12/30(水) 11:23:33.25ID:hFnpG/QKH
>>173
イベントハンドラは必ず先頭でEnableEvents=Falseするんだよ
そして時間のかかる処理はハンドラの中へ書かずに別プロシージャに飛ばす
2020/12/30(水) 13:02:57.82ID:mfFqR3/N0
>>175
ごめん、1クリックで2回じゃなくて、
選択肢の表示で1回、選択で1回で計2回の間違い
なのでイベントOFFで逃げられない
2020/12/30(水) 16:14:15.56ID:8iwO+LiN0
状態管理用のフラグ作って管理している
2020/12/30(水) 23:59:22.86ID:Oh92F1JH0
>>173
マジすか
もしかしてDropButtonClickイベントに.Clearと.AddItemを入れたら選択してもボックス内に表示されなかったりするのって原因それですかね
2020/12/31(木) 08:04:03.76ID:qAEGulJg0
>>178
そういうの作りながら動作確認しないの?
2020/12/31(木) 08:17:09.79ID:sAh4R5unH
ネットにサンプルがいくらでも転がってんだから、素直にコピペしとけばいいのに
2020/12/31(木) 08:39:17.53ID:5hauEQny0
直ぐにネットの野良コードを見て何も考えずにコピペコピペする人は決して【上級者】ではありません!(キリ
2020/12/31(木) 10:43:23.83ID:yfYCC+Dx0
>>178
多分そう

>>179
最初はそんな罠があると思わないからな
俺は、間にMsgBox入れたら2回出たのでやっと気づいたわ
2020/12/31(木) 10:53:25.38ID:8vAoqqdn0
罠なんてのは理解してる人間が陥るものであってただの知識不足には何の関係もない
想定の動きしなかったら一つ一つ確認するのは最低限のことだ
2020/12/31(木) 11:11:12.57ID:sAh4R5unH
プログラムは決して思った通りには動かず、書いた通りにしか動かない
思った通りに動かない時、それは思った通りに書けてない時
2020/12/31(木) 11:33:07.51ID:yfYCC+Dx0
いや、Windows Update直後に動かなくなるとか普通にあるから

あとVBSだが、最近InputBoxで第1引数の文字が出ないことがある
どこかのファイルから文字を読み込んでるとかじゃなく、
引数に直接指定してるのに
起動しなおすと出るから間違ってはいない
2021/01/01(金) 09:42:29.21ID:Sutdgdij0
間違っているのではなく見落としているんじゃね
2021/01/01(金) 17:08:38.32ID:PXRj0cmP0
そりゃPGの動作ってのは環境含めてだからな
2021/01/02(土) 20:54:06.70ID:gYfsTimq0
不具合がわかっていて放置できるとかうらやましいな
2021/01/04(月) 03:24:12.12ID:SOcZuJtz0
>>125
検索結果はARTICLEタグの1番目から3番目迄(0番目は検索結果とは違うものに使用されてる。)。
その下のクラス名LawDownloadの下にクラス名pdfFileが幾つか見つかるが、その直ぐ下にAタグにhref=で始まるURLが見つかる。

どれもGetElements系で取得出来る。
最後はURLDownloadToFile使えば良いんじゃね?
190デフォルトの名無しさん (ワッチョイ 41ad-qBFf)
垢版 |
2021/01/04(月) 16:03:39.37ID:P/FS/eNz0
バッチでデスクトップを再起動する人もあまりいないと思うが
デスクトップを再起動するプロシージャ内でExcelをQuitすると、Excelが勝手に再起動する
という現象が起きるので一応報告しとくね

環境によるかも
最初からWin10のPCで、Excel2019
(Win8からのアプデPCで、Excel2013では起きなかったかも)

デスクトップを再起動するコマンドを実行してるのはShell関数
Shell関数は非同期のはずだが、その同一プロシージャ内では、APIのSleepで5秒待っても駄目
DoEventsも駄目
そのプロシージャを一旦抜けて、タイマーで5秒後にQuitを実行すればExcelが再起動しない

デスクトップを再起動するのは、とあるツールの強制終了で残るタスクバーアイコンをクリアするためで
そんな用事のある人も滅多にいないだろうけど(クリアしなくても問題があるわけでもないし)
191デフォルトの名無しさん (ワッチョイ 41ad-qBFf)
垢版 |
2021/01/04(月) 16:52:13.02ID:P/FS/eNz0
Access VBAに比べるとExcel VBAは随分安定してるが
それでもゴリゴリ開発を繰り返すと、謎の実行エラーは起きるよね
ソースを全部エクスポートしてインポートし直すと直るやつ
結構有名なはずだが
謎は実在するのにないと言い張るのは、経験不足なだけ

話題の動作を確認したわけじゃないがね
2021/01/04(月) 18:20:52.45ID:WAisD+UGM
あまり何もかもをまとめて処理するのはリスキー過ぎる
小分けにして段階を踏め
2021/01/04(月) 21:23:02.41ID:XJuzf2wY0
VDI環境でメモリ4ギガしか振られてないんだけど、グローバル変数を4つくらい作るとメモリ不足エラーが出て不安定になります。
割り当てるメモリを増やせばエラー収まりますか?
2021/01/07(木) 11:25:47.54ID:vMxmEGnU0
質問というか相談です
フォーム上のテキストボックスを右クリックした時、元の背景色が通常色の場合は黄色に、黄色の場合は通常色にと切替を行い、塗り潰しチェックの様な事が出来るようにした物を作りたいです
なのでMouseDown若しくはMouseUpで拾ってButton=2の場合に、テキストボックスの背景色を切り替える方向で行こうと考えました
MouseDownは1度のクリックで2度処理を行ってしまう為、MouseUPを使用しようと思いましたが、
正直押した瞬間ではなく離した時点なのが至極個人的に違和感バリバリなのでMouseDownでどうにか処理できないかと考えています
その場合、静的変数を用いて2回目かどうかの判定を行うのが良いのでしょうか
2021/01/07(木) 12:14:22.04ID:lqyAMCWOM
Timerで1秒以内の2回目は止めたら
2021/01/07(木) 13:06:20.76ID:LEN4uLCLd
for eachでフィルターがかけられた列をコレクションし、現在のセルと一つ下のセルの値を比較しようと思ったのですが、offsetだと隠れた行の数値が参照されてしまいます。
フィルタリングして可視状態の一つ下のセルを参照するには、どうすればよいのでしょうか。
197デフォルトの名無しさん (ラクッペペ MM26-9Wmm)
垢版 |
2021/01/07(木) 15:55:15.71ID:JVCs6nJOM
無理だな
一つ上のを覚えといて比較しな
2021/01/07(木) 17:04:40.85ID:lqyAMCWOM
該当セルから下方向に、
VidibleがTrueなセルに当たるまで探せば
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況