!extend:checked:vvvvv:1000:512
ExcelのVBAに関する質問スレです
コード書き込みや作成依頼もOK
※前スレ
Excel VBA 質問スレ Part62
https://mevius.5ch.net/test/read.cgi/tech/1561303297/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
Excel VBA 質問スレ Part63
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ d3d0-EPXH)
2019/09/16(月) 19:34:59.04ID:emfTAhXr0455デフォルトの名無しさん (ワッチョイ b37c-JGMk)
2019/10/26(土) 21:44:56.09ID:w2sb5QGz0 >>454
ここはExcelスレじゃない
ここはExcelスレじゃない
456デフォルトの名無しさん (ワッチョイ 43c3-nkui)
2019/10/27(日) 04:54:35.83ID:iIC7Qe/E0 33sands's blog: VBAでpushやpopができる配列クラスを実装しました
http://33sands.blogspot.com/2012/03/vbapushpop.html
このブログで、VBA自作配列クラスが公開されていたようですが、ファイルが消えていました。
ここで公開されていたファイルをお持ちの方はいませんでしょうか?
http://33sands.blogspot.com/2012/03/vbapushpop.html
このブログで、VBA自作配列クラスが公開されていたようですが、ファイルが消えていました。
ここで公開されていたファイルをお持ちの方はいませんでしょうか?
457デフォルトの名無しさん (ワッチョイ ff68-mjLV)
2019/10/27(日) 07:39:28.03ID:LP8uAzFd0 いないよw
458デフォルトの名無しさん (ワッチョイ 53ce-mjLV)
2019/10/27(日) 07:48:21.99ID:5kDmbxH+0 WebArchive
459デフォルトの名無しさん (ワッチョイ 23c4-BHPo)
2019/10/27(日) 08:55:23.11ID:1nxyxlWe0460デフォルトの名無しさん (ワッチョイ ffda-MdJ4)
2019/10/27(日) 09:08:45.25ID:7A1wEn3c0 >>456
そこに書いてある Ubound(配列) + 1 ってのは、よく見かける見る例で、
ループ内で使うと思うんだけど、毎回配列の最大数調べてたら遅くならんかなぁ。
俺は a = a + 1 にしちゃうけど、変わらんか?
そこに書いてある Ubound(配列) + 1 ってのは、よく見かける見る例で、
ループ内で使うと思うんだけど、毎回配列の最大数調べてたら遅くならんかなぁ。
俺は a = a + 1 にしちゃうけど、変わらんか?
461デフォルトの名無しさん (ワッチョイ ff68-mjLV)
2019/10/27(日) 10:16:44.42ID:LP8uAzFd0 >>460
VBAでpushを実装しようと思うとこうするしかないぞ
VBAでpushを実装しようと思うとこうするしかないぞ
462デフォルトの名無しさん (ワッチョイ ff01-3qLD)
2019/10/27(日) 11:21:18.40ID:vcUKQgsd0463デフォルトの名無しさん (ワッチョイ 23c4-BHPo)
2019/10/27(日) 11:24:16.68ID:1nxyxlWe0 >>449
currentregionプロパティで下記のは可能でしょうか?
ABCDEFGHI(列名)
q 12 33 q
A〜I列の内、B〜H列内で数字がある最初と最後の列番号を取得したいと思ってます。
通常では448に書いたようにB〜H列を指定して.ENDでxltoleft/rightを使い2行と2つの変数に結果を入れる事でできたのですが、計算式だとNGだったので(どちらもH列が帰ってきました)
currentregionプロパティで下記のは可能でしょうか?
ABCDEFGHI(列名)
q 12 33 q
A〜I列の内、B〜H列内で数字がある最初と最後の列番号を取得したいと思ってます。
通常では448に書いたようにB〜H列を指定して.ENDでxltoleft/rightを使い2行と2つの変数に結果を入れる事でできたのですが、計算式だとNGだったので(どちらもH列が帰ってきました)
464デフォルトの名無しさん (ワッチョイ b37c-JGMk)
2019/10/27(日) 12:19:45.36ID:jv/fzOi30 >>456
なんで作者本人に連絡取らんの
なんで作者本人に連絡取らんの
465デフォルトの名無しさん (ワッチョイ cfdd-MdJ4)
2019/10/27(日) 13:19:15.84ID:5V6/K/A10 >>463
計算結果が数値の最初と最後の列ってこと?
xlToLeft; xlToRight; はセルが空かどうかでしか判断できないから使えないでしょ?
開始列と終了列からそれぞれなめて、IsNumeric(.value) で判定しないとダメじゃないかな。
なんかいい方法あるけ?
計算結果が数値の最初と最後の列ってこと?
xlToLeft; xlToRight; はセルが空かどうかでしか判断できないから使えないでしょ?
開始列と終了列からそれぞれなめて、IsNumeric(.value) で判定しないとダメじゃないかな。
なんかいい方法あるけ?
466デフォルトの名無しさん (アークセー Sx47-7WON)
2019/10/27(日) 14:10:23.14ID:lm+G5EAgx >>456
よく見てないけど計算量最適化できてなさそうだね
よく見てないけど計算量最適化できてなさそうだね
467デフォルトの名無しさん (アークセー Sx47-7WON)
2019/10/27(日) 14:42:36.79ID:lm+G5EAgx >>463
CurrentRegionでは恐らく無理
下のようにループを左右両側から回して調べるしかないんじゃないかな
列番号をチェックする行に含まれるセルを選択している状態という前提です
Dim RngA2I As Range 'チェック対象行のA列からI列までの範囲
Dim i As Long 'ループ用インデックス
Dim LMost As Long '左端列の列番号
Dim RMost As Long '右端列の列番号
With ActiveSheet
Set RngA2I = .Cells(.Cells(Selection.Row, 1), .Cells(Selection.Row, 9))
End With
For i = 2 To 8
If IsNumeric(RngA2I.Item(i).Value) Then
LMost = i
Exit For
End If
Next
For i = 8 To 2 Step - 1
If IsNumeric(RngA2I.Item(i).Value) Then
RMost = i
Exit For
End If
Next
CurrentRegionでは恐らく無理
下のようにループを左右両側から回して調べるしかないんじゃないかな
列番号をチェックする行に含まれるセルを選択している状態という前提です
Dim RngA2I As Range 'チェック対象行のA列からI列までの範囲
Dim i As Long 'ループ用インデックス
Dim LMost As Long '左端列の列番号
Dim RMost As Long '右端列の列番号
With ActiveSheet
Set RngA2I = .Cells(.Cells(Selection.Row, 1), .Cells(Selection.Row, 9))
End With
For i = 2 To 8
If IsNumeric(RngA2I.Item(i).Value) Then
LMost = i
Exit For
End If
Next
For i = 8 To 2 Step - 1
If IsNumeric(RngA2I.Item(i).Value) Then
RMost = i
Exit For
End If
Next
468デフォルトの名無しさん (ワッチョイ ff01-3qLD)
2019/10/27(日) 14:55:15.64ID:vcUKQgsd0 >>466
中身わからんのに計算量を推定できるとかエスパーかよw
中身わからんのに計算量を推定できるとかエスパーかよw
469デフォルトの名無しさん (ワッチョイ b37c-JGMk)
2019/10/27(日) 16:12:11.26ID:jv/fzOi30 >>463
With Range("B:H")
'最初
.Find(What:="*", LookIn:=xlValues, SearchOrder:=xlByColumns, SearchDirection:=xlNext).Column
'最後
.Find(What:="*", LookIn:=xlValues, SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column
End With
値が入ってるセルが1つも無いとエラーになるから事前にチェックしておく
With Range("B:H")
'最初
.Find(What:="*", LookIn:=xlValues, SearchOrder:=xlByColumns, SearchDirection:=xlNext).Column
'最後
.Find(What:="*", LookIn:=xlValues, SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column
End With
値が入ってるセルが1つも無いとエラーになるから事前にチェックしておく
470デフォルトの名無しさん (ワッチョイ cfdd-MdJ4)
2019/10/27(日) 16:59:16.22ID:5V6/K/A10471デフォルトの名無しさん (ワッチョイ b37c-JGMk)
2019/10/27(日) 17:02:26.90ID:jv/fzOi30 数字限定?なら>>469は忘れて
472デフォルトの名無しさん (スプッッ Sd1f-mumX)
2019/10/27(日) 17:36:39.44ID:aJJKs/ARd 今の時代でマルチスレッドが使えない時点で終わってる
>>472
マルチスレッドプログラミングは難しいので、なにか適切な抽象化方策が言語でとられるべきかと
マルチスレッドプログラミングは難しいので、なにか適切な抽象化方策が言語でとられるべきかと
474デフォルトの名無しさん (アークセー Sx47-7WON)
2019/10/27(日) 20:13:15.91ID:lm+G5EAgx >>468
Redimで連続アドレス領域を都度確保するのが効率悪いって言いたいだけなんだが
Redimで連続アドレス領域を都度確保するのが効率悪いって言いたいだけなんだが
475デフォルトの名無しさん (ワッチョイ 23c4-BHPo)
2019/10/27(日) 20:14:07.93ID:1nxyxlWe0 >>467
やはり両方から確認しにいくのが確実ですよね。
他の部署から来るデータで2シートだけは単純に空白と数値だけなのですが、他のファイルにある1シートだけは計算式入ってたので…
まぁ、最初と最後だけ確認してから他の作業をさせればいいので、これ参考にさせていただきます。
ありがとうございました。
やはり両方から確認しにいくのが確実ですよね。
他の部署から来るデータで2シートだけは単純に空白と数値だけなのですが、他のファイルにある1シートだけは計算式入ってたので…
まぁ、最初と最後だけ確認してから他の作業をさせればいいので、これ参考にさせていただきます。
ありがとうございました。
476デフォルトの名無しさん (ワッチョイ 23c4-BHPo)
2019/10/27(日) 20:16:11.25ID:1nxyxlWe0477デフォルトの名無しさん (ドコグロ MMc7-3qLD)
2019/10/27(日) 21:21:01.09ID:rrcAfXPkM478デフォルトの名無しさん (アークセー Sx47-7WON)
2019/10/27(日) 23:13:53.49ID:lm+G5EAgx479デフォルトの名無しさん (ワッチョイ 7f4b-9ZKN)
2019/10/27(日) 23:43:54.17ID:qu9l82Nk0 面倒臭いからVBA使うんだろ
480デフォルトの名無しさん (アークセー Sx47-7WON)
2019/10/27(日) 23:53:42.61ID:lm+G5EAgx AccessやPowerQueryを知らずに言ってるんだろうがテーブルへのクエリをExcel VBAでスクラッチする方が遥かに面倒だぞ
481デフォルトの名無しさん (ワッチョイ 7f4b-9ZKN)
2019/10/27(日) 23:55:56.34ID:qu9l82Nk0 448のどこがaccess、powerquery向きなのか理解出来ない
482デフォルトの名無しさん (アウアウウー Sa27-wnNP)
2019/10/28(月) 01:11:50.89ID:DN6aA2bKa 最初からデータをDBへ入れて扱っていれば「端の値を取る」などというトンデモ要件はそもそも出てこないということだろう
業務ロジックの中でシートの右だの左だの何列目だのとシート上でのレイアウトに依存したコードが散乱するのは典型的な悪夢
業務ロジックの中でシートの右だの左だの何列目だのとシート上でのレイアウトに依存したコードが散乱するのは典型的な悪夢
483デフォルトの名無しさん (アウアウクー MM47-BHPo)
2019/10/28(月) 08:44:07.27ID:ECOvCBlTM 448です。
元は手作業でやっていたのを自動化?したいとかで外の会社とかも関わってるので、DB化とかそういう話になるとメンドクサイ事になるらしいです。
自分は他から来ているので、あまり口出しできない状態。
あと、作業の行にカレンダーがあって、そのカレンダーに数字が入力されてる感じです。
なので月ごとに場所が変わったりするので…
そんなのが数百行あるので、少しでもその作業の先頭列が分かれば…と思っていたのですが…
元は手作業でやっていたのを自動化?したいとかで外の会社とかも関わってるので、DB化とかそういう話になるとメンドクサイ事になるらしいです。
自分は他から来ているので、あまり口出しできない状態。
あと、作業の行にカレンダーがあって、そのカレンダーに数字が入力されてる感じです。
なので月ごとに場所が変わったりするので…
そんなのが数百行あるので、少しでもその作業の先頭列が分かれば…と思っていたのですが…
484デフォルトの名無しさん (アウアウクー MM47-BHPo)
2019/10/28(月) 08:46:00.28ID:ECOvCBlTM >>482
確かに…
Excelで手作業だったって事もあって、項目によっては行が結合されていたりとかもあってさらにメンドクサイ状態。
そのへんなんとかしてほしいのだが、そうなると外の会社との折衝にもなるらしいのでNGっぽい…orz
確かに…
Excelで手作業だったって事もあって、項目によっては行が結合されていたりとかもあってさらにメンドクサイ状態。
そのへんなんとかしてほしいのだが、そうなると外の会社との折衝にもなるらしいのでNGっぽい…orz
485デフォルトの名無しさん (ワッチョイ cfd2-Z4kd)
2019/10/28(月) 11:38:38.31ID:aHKY+muw0 プログラミングスレで聞くのが妥当か分からないけど
マクロの記録を使って「データ分析」ツールをSheet1、Sheet2....Sheet13と起動していくマクロを作ろうとしてるんだけど、どういうわけか「データ分析」で生成された表が現れるSheetと現れないシートにムラがある
規則性はないように思われる
なにかわかることありますかね
マクロの記録を使って「データ分析」ツールをSheet1、Sheet2....Sheet13と起動していくマクロを作ろうとしてるんだけど、どういうわけか「データ分析」で生成された表が現れるSheetと現れないシートにムラがある
規則性はないように思われる
なにかわかることありますかね
486デフォルトの名無しさん (ワッチョイ c3b0-OGTw)
2019/10/28(月) 12:42:09.32ID:w6LeaWY50 Mac版でcontrol+Shift+5で%が付くようにしたのですがこの設定を元に戻すショートカットってありますか?
487デフォルトの名無しさん (ブーイモ MM1f-DyET)
2019/10/29(火) 04:42:35.22ID:pjDEMxXCM userformの選択されているcheckboxのcaptionを変数にまとめてautofilterでデータ抽出しようとしているのですがうまくいきません
ちなみにそのような方法でautofilterをかけることは可能でしょうか?
よくわかんない質問ですいませんがよろしくお願いします
ちなみにそのような方法でautofilterをかけることは可能でしょうか?
よくわかんない質問ですいませんがよろしくお願いします
488デフォルトの名無しさん (ワッチョイ ffea-/P2k)
2019/10/29(火) 05:23:49.56ID:5vXI5Cgx0489デフォルトの名無しさん (ワッチョイ ffd2-hRK6)
2019/10/29(火) 17:33:39.24ID:VP7O6DBE0 看護師の勤務表を作りたいけど何からやればいいか分からないです。教えてください
490デフォルトの名無しさん (ワッチョイ ff42-cmPQ)
2019/10/29(火) 17:46:30.71ID:/hC7c7vt0 単純に勤務表ってだけなら表計算でできることなのでエクセルスレへどうぞ(厳密には表計算ですら無いけど)
VBAは大雑把に言うと表計算だけでは実現でいないことをやるための技術です
VBAは大雑把に言うと表計算だけでは実現でいないことをやるための技術です
491デフォルトの名無しさん (ワッチョイ ffd2-hRK6)
2019/10/29(火) 17:51:20.57ID:VP7O6DBE0 VBA使わずに自動で1ヶ月分作れるんですか?
492デフォルトの名無しさん (スフッ Sd1f-omNk)
2019/10/29(火) 18:01:49.00ID:489rbQ/pd Office365のカレンダーがいいよ
493デフォルトの名無しさん (ワッチョイ ff42-cmPQ)
2019/10/29(火) 18:03:40.61ID:/hC7c7vt0 その場合は必要
後出しで条件を追加すると話が長くなるし回答も二度手間になるので最初にやりたいことをきっちり説明すべし
後出しで条件を追加すると話が長くなるし回答も二度手間になるので最初にやりたいことをきっちり説明すべし
494デフォルトの名無しさん (スッップ Sd1f-Z4kd)
2019/10/29(火) 18:11:33.96ID:NgUa+H/Id 配列に入ってる値をセルに一個ずつ入れたいのですが、
for i = LBound(配列) to UBound(配列)
Cells(i.1).value = 配列(i)
Next i
こう書くと型が違いますとエラーになります
どうすればいいですか?
for i = LBound(配列) to UBound(配列)
Cells(i.1).value = 配列(i)
Next i
こう書くと型が違いますとエラーになります
どうすればいいですか?
495デフォルトの名無しさん (アウアウクー MM47-M947)
2019/10/29(火) 18:12:54.47ID:xRagZ8fLM 勤務表を自動で作成したいとなれば、アルゴリズムの知識がないと実装できないと思う。ナース・スケジューリング問題とか調べてみるといい。参考になる文献が出てくる。ただ、いっそのこと有料ソフトを買った方が早い気がする。
496デフォルトの名無しさん (ワッチョイ 6ff7-I5l6)
2019/10/29(火) 18:23:00.38ID:nykYL9OH0 >>494
そらi=0から始まるけどセルに座標0はないんで
そらi=0から始まるけどセルに座標0はないんで
497デフォルトの名無しさん (オッペケ Sr47-7WON)
2019/10/29(火) 18:26:41.51ID:cRJ9A2Q6r498デフォルトの名無しさん (オッペケ Sr47-7WON)
2019/10/29(火) 18:28:33.17ID:cRJ9A2Q6r 訂正
transpose
transpose
499デフォルトの名無しさん (ワッチョイ 6ff7-I5l6)
2019/10/29(火) 18:35:46.74ID:nykYL9OH0 Cells(i+1,1).valueかCells(1,1).Offset(i,0).valueにする
500デフォルトの名無しさん (ワッチョイ cf8e-FPtM)
2019/10/29(火) 18:36:33.04ID:CZCLEAoQ0 >>489
馬鹿は死ね
馬鹿は死ね
501デフォルトの名無しさん (スップ Sd1f-mumX)
2019/10/29(火) 18:41:35.33ID:VPqdpMYqd エクセル以外のソフトをインストール出来ないってアホみたいな環境はソッコーで辞めた方が良い
VBAなんて将来性もないクソ言語を覚える意味は全くない
本当に他の開発環境は無理なの?
冗談だよね?
VBAなんて将来性もないクソ言語を覚える意味は全くない
本当に他の開発環境は無理なの?
冗談だよね?
502デフォルトの名無しさん (ワッチョイ ffd2-hRK6)
2019/10/29(火) 19:27:11.79ID:VP7O6DBE0 >>500
おう。お前が死んどけ
おう。お前が死んどけ
503デフォルトの名無しさん (ササクッテロル Sp47-YkOl)
2019/10/29(火) 19:48:08.52ID:+Y5A9Qhrp >>494
取り敢えずみんなが言ってる通り配列のインデックスは0から始まるし
Cellは行にしても列にしても1から始まるのでそこんとこ気をつけなければいけません。
後はセル指定する際にはブック、シートも指定しておく癖をつけておくことをお勧めします。
取り敢えずみんなが言ってる通り配列のインデックスは0から始まるし
Cellは行にしても列にしても1から始まるのでそこんとこ気をつけなければいけません。
後はセル指定する際にはブック、シートも指定しておく癖をつけておくことをお勧めします。
504デフォルトの名無しさん (ササクッテロル Sp47-YkOl)
2019/10/29(火) 19:57:54.69ID:+Y5A9Qhrp >>501
仕事場によっては、特に銀行系は
使うもの以外勝手にインストールしてはいけないところが多々有ります。
例えばJavascriptだけ使ってればいいのに
勝手にVisualStudoやTOMCATとかをインストールすると怒られるどころか
コンプライアンスの面から仕事場を退場させられる場合もあります。
EXCELは大概どこの仕事場にも入っているから
インストールしなくても使えるだけで、
当然入れてはいけないと言われたら勝手に入れるべきではありません。
むしろ「勝手にどんどん何でもインストールしていいですよ〜」なんて仕事場があったら
そこのセキュリティはどうなってるのか疑うべきと思われます。
仕事場によっては、特に銀行系は
使うもの以外勝手にインストールしてはいけないところが多々有ります。
例えばJavascriptだけ使ってればいいのに
勝手にVisualStudoやTOMCATとかをインストールすると怒られるどころか
コンプライアンスの面から仕事場を退場させられる場合もあります。
EXCELは大概どこの仕事場にも入っているから
インストールしなくても使えるだけで、
当然入れてはいけないと言われたら勝手に入れるべきではありません。
むしろ「勝手にどんどん何でもインストールしていいですよ〜」なんて仕事場があったら
そこのセキュリティはどうなってるのか疑うべきと思われます。
505デフォルトの名無しさん (ワッチョイ e394-mumX)
2019/10/29(火) 20:03:23.90ID:tCyp/No90 マクロを許可してる方がセキュリティ意識ゼロ
506デフォルトの名無しさん (ワッチョイ d363-mjLV)
2019/10/29(火) 20:06:27.60ID:b5zWL0uJ0 開発メンバーは基本何でもできるからしょうがないだろ
Excelマクロがだめなら開発環境の言語使うわ
Excelマクロがだめなら開発環境の言語使うわ
507デフォルトの名無しさん (ワッチョイ ff68-mjLV)
2019/10/29(火) 20:10:23.13ID:zvctnIdZ0 cmdとか使える時点でセキュリティも何も合ったもんじゃないと思うけどね
508デフォルトの名無しさん (ワッチョイ 6f01-Z4kd)
2019/10/29(火) 20:22:40.07ID:OodB9NB80509デフォルトの名無しさん (ワッチョイ 6f01-Z4kd)
2019/10/29(火) 20:28:16.99ID:OodB9NB80510デフォルトの名無しさん (ワッチョイ ff59-cL2I)
2019/10/29(火) 23:06:14.03ID:G3O8ZbaI0 鱗付いてるとか爬虫類かよ
511デフォルトの名無しさん (ワッチョイ cf8e-FPtM)
2019/10/29(火) 23:35:46.46ID:CZCLEAoQ0 >>502
死ね、クズ
死ね、クズ
512デフォルトの名無しさん (ワッチョイ d3da-MdJ4)
2019/10/30(水) 10:46:19.82ID:YBm8xQnu0 >>510
爬虫類のわけないだろ
爬虫類のわけないだろ
513デフォルトの名無しさん (スプッッ Sd1f-5/kr)
2019/10/30(水) 10:55:31.55ID:YKBvUaHsd514デフォルトの名無しさん (スプッッ Sd1f-5/kr)
2019/10/30(水) 11:02:18.69ID:YKBvUaHsd >>501
結構多いし、そもそもExcelだけでどうとでもなるから。
能力の低い奴はExcelのせいにするけど、こっちは君が対応出来ないことも出来るんだよ。
確かにどうにもならないことならその時にはじめて他のソフトを検討するけどね。
結構多いし、そもそもExcelだけでどうとでもなるから。
能力の低い奴はExcelのせいにするけど、こっちは君が対応出来ないことも出来るんだよ。
確かにどうにもならないことならその時にはじめて他のソフトを検討するけどね。
515デフォルトの名無しさん (スプッッ Sd1f-5/kr)
2019/10/30(水) 11:04:17.20ID:YKBvUaHsd516デフォルトの名無しさん (スプッッ Sd1f-5/kr)
2019/10/30(水) 11:07:13.09ID:YKBvUaHsd >>504
勝手に入れる奴はそもそも居ないでしょ。
Excelは大概どこの仕事場にも入っているのは事実だけど、それが理由ではない。
入っていなければ最初から選択肢に無いし、このスレに書き込んでもいない。
勝手に入れる奴はそもそも居ないでしょ。
Excelは大概どこの仕事場にも入っているのは事実だけど、それが理由ではない。
入っていなければ最初から選択肢に無いし、このスレに書き込んでもいない。
517デフォルトの名無しさん (ブーイモ MMe7-DyET)
2019/10/30(水) 17:43:14.91ID:qmgosQ7XM >>487
>>488
Dim i As Integer
Dim n As Integer
Dim 検索値(0 To 3) As String
n = 1
For i = 1 To 4
If Me.Controls("CheckBox" & i).Value = True Then
検索値(n) = Me.Controls("CheckBox" & i).Caption
n = n + 1
End If
Next i
ActiveSheet.Range("$A$1:$J$41").AutoFilter Field:=2, Criteria1:=Array(検索値), Operator:=xlFilterValues
素人ながらにこんな感じで書いてみたのですが、こうするとチェックした項目だけでなく空白セルもautofilterもかけてしまいます。
どうしたら空白セルを除外することができますか?
>>488
Dim i As Integer
Dim n As Integer
Dim 検索値(0 To 3) As String
n = 1
For i = 1 To 4
If Me.Controls("CheckBox" & i).Value = True Then
検索値(n) = Me.Controls("CheckBox" & i).Caption
n = n + 1
End If
Next i
ActiveSheet.Range("$A$1:$J$41").AutoFilter Field:=2, Criteria1:=Array(検索値), Operator:=xlFilterValues
素人ながらにこんな感じで書いてみたのですが、こうするとチェックした項目だけでなく空白セルもautofilterもかけてしまいます。
どうしたら空白セルを除外することができますか?
518デフォルトの名無しさん (オッペケ Sr47-7WON)
2019/10/30(水) 20:32:13.04ID:xO9FzZTbr end ifの前にredim preserve 検索値(i)は?
519デフォルトの名無しさん (ワッチョイ e394-mumX)
2019/10/30(水) 20:57:54.67ID:LQeJyD4+0 VBAのユーザーフォームはWindows98の時代で止まったまま
あれじゃあ恥ずかしいよね
あれじゃあ恥ずかしいよね
520デフォルトの名無しさん (ワッチョイ ffda-MdJ4)
2019/10/30(水) 21:12:32.09ID:q2N5Gpbg0 2019でファイルを開いた時に、勝手にコンボボックスのクリックイベントが発動するんだけど、何で?
もちろん、ワークブックのクラスには何も書いてない状態。
2013ではそんな事なかったと思うんだけど。
このせいで、一切編集せずに閉じようとしても、いちいち保存するか聞いてくる。
もちろん、ワークブックのクラスには何も書いてない状態。
2013ではそんな事なかったと思うんだけど。
このせいで、一切編集せずに閉じようとしても、いちいち保存するか聞いてくる。
521デフォルトの名無しさん (ワッチョイ 53ea-roNU)
2019/10/30(水) 21:15:30.81ID:CYvJIfr60 >>517
だいたいそんな感じですね。
以下で行けました。(Dim文、略)
Control名いじるのが面倒なので、FrameにChkBox
つっこんで回しています。
iCnt = UserForm1.Frame1.Controls.Count - 1
ReDim ARR(iCnt)
i = -1
For Each vBuf In UserForm1.Frame1.Controls
With vBuf
If .Value = True Then
i = i + 1
ARR(i) = .Caption
End If
End With
Next
ActiveSheet.Range("範囲").AutoFilter _
Field:=1, _
Criteria1:=ARR, _
Operator:=xlFilterValues
だいたいそんな感じですね。
以下で行けました。(Dim文、略)
Control名いじるのが面倒なので、FrameにChkBox
つっこんで回しています。
iCnt = UserForm1.Frame1.Controls.Count - 1
ReDim ARR(iCnt)
i = -1
For Each vBuf In UserForm1.Frame1.Controls
With vBuf
If .Value = True Then
i = i + 1
ARR(i) = .Caption
End If
End With
Next
ActiveSheet.Range("範囲").AutoFilter _
Field:=1, _
Criteria1:=ARR, _
Operator:=xlFilterValues
522デフォルトの名無しさん (アークセー Sx47-7WON)
2019/10/30(水) 21:19:32.90ID:JfXI2Ieyx >>520
アドインでアプリケーションレベルのイベントハンドラ動かしてるとかじゃないの
アドインでアプリケーションレベルのイベントハンドラ動かしてるとかじゃないの
523デフォルトの名無しさん (ワッチョイ 6f10-NvbF)
2019/10/30(水) 21:22:06.27ID:naugAKCN0 ワークブッククラスの話までできるなら切り分ければいいのに。
524デフォルトの名無しさん (ワッチョイ ffda-MdJ4)
2019/10/30(水) 21:37:14.35ID:q2N5Gpbg0525デフォルトの名無しさん (ワッチョイ ffda-MdJ4)
2019/10/30(水) 21:39:34.26ID:q2N5Gpbg0 ↑ワークブックオープンイベントの最初にEndって、アドインの方ね。
526デフォルトの名無しさん (ワッチョイ ffda-MdJ4)
2019/10/30(水) 21:45:25.88ID:q2N5Gpbg0 ↑クリックイベントだけじゃなくて、チェンジイベントもだった。
何もチェンジしてないっての。
何もチェンジしてないっての。
527デフォルトの名無しさん (アークセー Sx47-7WON)
2019/10/30(水) 21:54:49.68ID:JfXI2Ieyx528デフォルトの名無しさん (アウアウクー MM47-BHPo)
2019/10/30(水) 21:55:52.89ID:gwpyZLjKM ある数値が範囲(***-***)や、範囲と単体の組み合わせを、カンマで区切っているのを降順に配列に格納したいけど、なんか上手くいかないです。
全部VBAでやろうとしているから…なのかな?と思い始めてます。
それ用のシートを作って、そこに1つずつ入れてソートさせた方が簡単…なのでしょうか?
全部VBAでやろうとしているから…なのかな?と思い始めてます。
それ用のシートを作って、そこに1つずつ入れてソートさせた方が簡単…なのでしょうか?
529デフォルトの名無しさん (アークセー Sx47-7WON)
2019/10/30(水) 22:06:31.14ID:JfXI2Ieyx530デフォルトの名無しさん (ワッチョイ ffda-MdJ4)
2019/10/30(水) 22:18:54.50ID:q2N5Gpbg0 >>527
それも見たけど、ないなぁ。
ていうか、コンボボックスが置いてあるシートがアクティブじゃなくても発動するし。
2013では、VBAでオブジェクトにフォーカスを移すと、
初回のみカーソルが見えなくなる現象が起きたと思うけど、
その対策として何かやってたりして。
それも見たけど、ないなぁ。
ていうか、コンボボックスが置いてあるシートがアクティブじゃなくても発動するし。
2013では、VBAでオブジェクトにフォーカスを移すと、
初回のみカーソルが見えなくなる現象が起きたと思うけど、
その対策として何かやってたりして。
531デフォルトの名無しさん (ワッチョイ b37c-JGMk)
2019/10/30(水) 22:21:08.45ID:TIjegGw30 >>528
VBAでもシートに書き出してからでもどっちも大した手間は無いよ
まず範囲を1-3なら1,2,3と展開して全体をカンマ区切りだけにしてから、
前者なら配列に格納→配列の中身を降順でソート
後者ならシートに貼り付け→ソート機能使えばいい
VBAでもシートに書き出してからでもどっちも大した手間は無いよ
まず範囲を1-3なら1,2,3と展開して全体をカンマ区切りだけにしてから、
前者なら配列に格納→配列の中身を降順でソート
後者ならシートに貼り付け→ソート機能使えばいい
532デフォルトの名無しさん (アークセー Sx47-7WON)
2019/10/30(水) 22:34:12.92ID:JfXI2Ieyx533デフォルトの名無しさん (ワッチョイ 23c4-BHPo)
2019/10/30(水) 23:11:10.26ID:iRK6fdCa0 >>529
すまん、コード会社にあるから書けないけど、やりたい事はそんな感じ。
最初にカンマでsplitして配列に入れてからfor〜nextで0からuboundで最後まで繰り返して「-」になってる範囲を数字にバラしてその間の数字を作って配列に入れ直して…
とかやってたらコードぐちゃぐちゃ、頭の中もぐちゃぐちゃに…orz
すまん、コード会社にあるから書けないけど、やりたい事はそんな感じ。
最初にカンマでsplitして配列に入れてからfor〜nextで0からuboundで最後まで繰り返して「-」になってる範囲を数字にバラしてその間の数字を作って配列に入れ直して…
とかやってたらコードぐちゃぐちゃ、頭の中もぐちゃぐちゃに…orz
534デフォルトの名無しさん (ワッチョイ cf8e-FPtM)
2019/10/30(水) 23:22:56.07ID:rL303qhu0 >>533
馬鹿には無理ってことだよ
馬鹿には無理ってことだよ
535デフォルトの名無しさん (JP 0Hff-Aa88)
2019/10/30(水) 23:42:55.97ID:+vGa/LGgH ソートを自前で書くのは速度的にもメリット無いし作業シート用意した方がいいと思う
そういうとこで苦労するのはちょっと時間の無駄かなとも思うし
そういうとこで苦労するのはちょっと時間の無駄かなとも思うし
536デフォルトの名無しさん (アークセー Sx47-7WON)
2019/10/30(水) 23:56:52.02ID:6F3AzkQ1x >>533
配列を作るところまでは多分いけるんだろうけど、問題はソートなんじゃないの?
配列のソートをサポートしてる.NETのArrayListオブジェクトはVBAでも使えるので、CreateObject("System.Collections.ArrayList")でインスタンス生成してAddメソッドで配列を渡して使うといいよ
Revereメソッドを噛ませてからToArrayメソッドで再度配列化して配列変数に再格納すれば一発で降順ソートされた配列を取得できる
配列を作るところまでは多分いけるんだろうけど、問題はソートなんじゃないの?
配列のソートをサポートしてる.NETのArrayListオブジェクトはVBAでも使えるので、CreateObject("System.Collections.ArrayList")でインスタンス生成してAddメソッドで配列を渡して使うといいよ
Revereメソッドを噛ませてからToArrayメソッドで再度配列化して配列変数に再格納すれば一発で降順ソートされた配列を取得できる
537デフォルトの名無しさん (ワッチョイ 4a02-d0HK)
2019/10/31(木) 01:50:11.06ID:Xu0ModTh0 Excel2016/32bitで作成したマクロをExcel2019/64bitのパソコンに移動すると途中でExcel自体が落ちてしまいます
この場合、2019にしたこと、64bitにしたこと、どちらが原因と考えられるでしょうか?
この場合、2019にしたこと、64bitにしたこと、どちらが原因と考えられるでしょうか?
538デフォルトの名無しさん (アウアウウー Sa2f-RHCh)
2019/10/31(木) 06:48:15.19ID:P+363w9Wa そのくらいしらべられないの?
539デフォルトの名無しさん (アークセー Sx03-9ZEm)
2019/10/31(木) 08:04:58.17ID:6oU9RGLEx >>537
動かないマクロファイルのファイル形式は?
動かないマクロファイルのファイル形式は?
540デフォルトの名無しさん (ワッチョイ 4a02-d0HK)
2019/10/31(木) 10:03:55.60ID:Xu0ModTh0541デフォルトの名無しさん (ワッチョイ 4a02-d0HK)
2019/10/31(木) 10:04:33.47ID:Xu0ModTh0 ちなみに動く時もありますがたまに落ちるという不安定な状態です
542デフォルトの名無しさん (ワッチョイ de8e-D9gH)
2019/10/31(木) 11:41:33.83ID:EmOHV2200 また馬鹿が来た
543デフォルトの名無しさん (スフッ Sdea-t/t6)
2019/10/31(木) 12:23:33.00ID:aNgqFqurd >>540
何をどう調べてどういう結果になったの?
何をどう調べてどういう結果になったの?
544デフォルトの名無しさん (アウアウクー MM43-ppJP)
2019/10/31(木) 12:30:33.86ID:oEJHLRECM 533です。
結局分割をしたデータをセルに置いてソートをさせて配列に入れるコードで問題なく動きました。
ありがとうございました。
変にVBAてわ全てやろうとせずにすればここまで時間かけずに済んだのですね…orz
結局分割をしたデータをセルに置いてソートをさせて配列に入れるコードで問題なく動きました。
ありがとうございました。
変にVBAてわ全てやろうとせずにすればここまで時間かけずに済んだのですね…orz
545デフォルトの名無しさん (ドコグロ MM0b-+xQI)
2019/10/31(木) 12:42:50.28ID:H1H2bMOCM どうせマクロ作った奴が手抜きしててエラーになったらApplication.Quit()してるとかじゃね
みんなエスパーじゃないんだからコード上げられないなら自分でチマチマデバッグしなよ
みんなエスパーじゃないんだからコード上げられないなら自分でチマチマデバッグしなよ
546デフォルトの名無しさん (ブーイモ MMea-i/e8)
2019/10/31(木) 16:13:16.49ID:yyoRZlBtM547デフォルトの名無しさん (ワッチョイ c605-qQ6b)
2019/11/01(金) 00:20:58.64ID:bbcNS1Ni0 VBSスレが過疎り過ぎているのとWSHのスレが無いことから、ここでVBSの質問させて下さい。
WshShellのRunメソッドを使ってTortoiseSVNのダイアログを呼び出すプログラムを書いているのですが、引数1を入れてもウィンドウが最前面に来てくれません。
Runした後にAppActivateメソッドを使ってもだめです。誰か、解決策をご存じの方、よろしくお願い申し上げます。
WshShellのRunメソッドを使ってTortoiseSVNのダイアログを呼び出すプログラムを書いているのですが、引数1を入れてもウィンドウが最前面に来てくれません。
Runした後にAppActivateメソッドを使ってもだめです。誰か、解決策をご存じの方、よろしくお願い申し上げます。
548デフォルトの名無しさん (ワッチョイ c610-HjOu)
2019/11/01(金) 00:46:23.89ID:txYCNlM40 tortoiseSVNとやらを触った事ないけど、
tortoiseSVNだけ起こる事象なの?他のNotepadとかでは試しました?
tortoiseSVNだけ起こる事象なの?他のNotepadとかでは試しました?
549デフォルトの名無しさん (ワッチョイ c610-HjOu)
2019/11/01(金) 01:08:36.00ID:txYCNlM40 spy++とかで窓id探ってapi使ってhandleできないかな
550デフォルトの名無しさん (ワッチョイ c610-HjOu)
2019/11/01(金) 01:38:24.11ID:txYCNlM40 >>536
レコードセット以外にも色んな方法があるものだね。勉強になったありがとう。
レコードセット以外にも色んな方法があるものだね。勉強になったありがとう。
551デフォルトの名無しさん (ワッチョイ 0b7c-qp9g)
2019/11/01(金) 16:54:14.94ID:BenAXzvv0 こちらのページ(https://www.sejuku.net/blog/99122)に記載されている
PDFをテキスト抽出してエクセルに貼るマクロを利用したいのですが、
ファイルとフォルダのパスを固定した記述になっているため、
ベースとなるPDFファイルを選択できるようにしたいのですがどなたか教えていただけないでしょうか。
↓のアスタリスク部分をどうにかすればと2時間戦いましたがどうにもできませんでした...
'PDFのデータをExcelに読み込むメイン処理
Sub Main()
'PDFファイルをテキストに変換するための定数を用意
* Const fileName = "*****"
* Const folderPath = "C:\Users\*****\"
Const pdfFilePath = folderPath & fileName & ".pdf"
Const txtFilePath = folderPath & fileName & ".txt"
'PDFファイルをテキストに変換
Call convPDFtoText(fileName, folderPath, pdfFilePath, txtFilePath)
'テキストデータをExcelに読み込む
Call importTxtData(txtFilePath)
End Sub
PDFをテキスト抽出してエクセルに貼るマクロを利用したいのですが、
ファイルとフォルダのパスを固定した記述になっているため、
ベースとなるPDFファイルを選択できるようにしたいのですがどなたか教えていただけないでしょうか。
↓のアスタリスク部分をどうにかすればと2時間戦いましたがどうにもできませんでした...
'PDFのデータをExcelに読み込むメイン処理
Sub Main()
'PDFファイルをテキストに変換するための定数を用意
* Const fileName = "*****"
* Const folderPath = "C:\Users\*****\"
Const pdfFilePath = folderPath & fileName & ".pdf"
Const txtFilePath = folderPath & fileName & ".txt"
'PDFファイルをテキストに変換
Call convPDFtoText(fileName, folderPath, pdfFilePath, txtFilePath)
'テキストデータをExcelに読み込む
Call importTxtData(txtFilePath)
End Sub
552デフォルトの名無しさん (オッペケ Sr03-9ZEm)
2019/11/01(金) 18:51:05.73ID:tcQFOgygr >>551
GetOpenFilenameでパスとファイル名を取得
GetOpenFilenameでパスとファイル名を取得
553デフォルトの名無しさん (ササクッテロル Sp03-HTwX)
2019/11/01(金) 19:03:05.01ID:qpEsTrFRp >>536
.Netのオブジェクトが使えるというのは
正直目からウロコだった。
いいね。.Net使いの俺からすると
機能に制限があるとは言っても有り難い。
ただ、参照設定して使っても
インテリセンスが効かないのが
ちょっと玉に瑕だけど。
.Netのオブジェクトが使えるというのは
正直目からウロコだった。
いいね。.Net使いの俺からすると
機能に制限があるとは言っても有り難い。
ただ、参照設定して使っても
インテリセンスが効かないのが
ちょっと玉に瑕だけど。
554デフォルトの名無しさん (ワッチョイ 4ada-QPqB)
2019/11/01(金) 19:13:41.95ID:VrCKg/E/0 >>532
試してないけど、クリック→ドロップボタンクリックにしたら発動しなくなったから、もうそれでいいやw
1クリックで2回動くのが嫌だけど。
いちいち、2回に1回Exitする処理入れないといけないし。
試してないけど、クリック→ドロップボタンクリックにしたら発動しなくなったから、もうそれでいいやw
1クリックで2回動くのが嫌だけど。
いちいち、2回に1回Exitする処理入れないといけないし。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 国民 居住目的でない住宅所有者に「空室税」課せる法案を提出 [少考さん★]
- 国民 居住目的でない住宅所有者に「空室税」課せる法案を提出 ★2 [少考さん★]
- 「働いて働いて」の流行語大賞に懸念 「言葉が独り歩き」 過労自殺遺族 [尺アジ★]
- アメリカ、入国時に「日本人を含む外国人観光客の最大5年分のSNS履歴の提出」義務化へ 過去10年間に使用のメールアドレスや電話番号等も★3 [Hitzeschleier★]
- 【画像】消えた美人女優 上原多香子さん(42)、沖縄で目撃される [牛丼★]
- 「暖房が使えない」「食費が高くて子どもの栄養が…」 物価高に苦しむ子育て世帯、政府に期待する支援は ★2 [蚤の市★]
- 【高市悲報】JA、発狂www「臨時に経費率を下げるので、どうかお米券を使ってください」 [246620176]
- 【実況】博衣こよりのえちえちダンガンロンパ2🧪★1
- 高市早苗、森元総理の愛人だった [347751896]
- CoCo壱で毎回カレー食わない
- 【高市朗報】中国、歴史上日本に一度も侵攻したことがない親日国だった [931948549]
- 新たなる弱男判定法見つかるwwwwwwwwwwwwwwwwww
