Excel VBA 質問スレ Part69

レス数が900を超えています。1000を超えると表示できなくなるよ。
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
2021/03/07(日) 10:30:32.44ID:ZX3XyXetM
IEはなくなるのにVBAは大丈夫だと思う理由は?
言語もPythonとかにしてBeautifulSoupやSeleniumでも使った方がよい
2021/03/07(日) 10:37:32.50ID:4ExLqYxe0
パワークエリはどうかな
2021/03/07(日) 10:42:14.29ID:TW4NSoKtM
無くなったときのビジネスインパクトはIEよりもVBAの方が遥かに小さいから、MSがどっちか先に切るとしたらVBAだろう
最悪VBAは切られてもExcelのバージョンを塩漬けにして運用できなくはないしな
2021/03/07(日) 11:28:15.07ID:zpOLYdVD0
>>830
まあそのうちpythonに移行するんでしょうけど、今は慣れない言語を一から勉強してる暇はないので
それで、あなたはvbaでやる他の方法を示せないということでよろしいですか?

>>831
どうかな、じゃなくてどうやるのか教えてください
2021/03/07(日) 13:02:06.24ID:JbGOdXToM
704 名無し~3.EXE sage 2021/03/01(月) 20:11:45.17 ID:hZCKpI4x
デスクトップ版のVBAマクロに替えてWeb版はOfficeスクリプトがプレビュー中(現在は法人向け365のオンラインのみ)
https://docs.microsoft.com/ja-jp/office/dev/scripts/resources/vba-differences

705 名無し~3.EXE sage 2021/03/01(月) 20:16:10.79 ID:hZCKpI4x
Excelの新自動化ソリューション「Office Scripts」プレビュー版が登場
https://ascii.jp/elem/000/004/000/4000725/

Excel操作をJavaScriptで記録 〜Microsoft、“Office Scripts”をパブリックプレビュー
https://forest.watch.impress.co.jp/docs/news/1227931.html
2021/03/07(日) 13:04:56.15ID:JbGOdXToM
788 名無し~3.EXE sage 2021/03/03(水) 18:26:40.20 ID:5NVXQTtc
Excel関数ベースのプログラミング言語「Microsoft Power Fx」登場 オープンソースで公開予定
https://www.itmedia.co.jp/news/articles/2103/03/news080.html

Microsoft、自社製RPAツールを全Windows 10ユーザーに無償提供 マウスクリックやキーボード入力をGUIで自動化
https://www.itmedia.co.jp/news/articles/2103/03/news096.html
836デフォルトの名無しさん (ワッチョイ cb8e-3QAQ)
垢版 |
2021/03/07(日) 13:46:03.75ID:5FBwssoR0
>>833
なんだただの馬鹿か
煽って聞きだそうとしてもこのスレはいつものあいつで耐性ができた人ばかりだから無理
2021/03/07(日) 14:06:40.31ID:4ExLqYxe0
触れないようにしてたけど辛辣で草
2021/03/07(日) 17:25:15.30ID:CYFzWFvV0
>>836
答えられないならレスしなくていいよ
無能に用はないから
839デフォルトの名無しさん (ワッチョイ cb8e-3QAQ)
垢版 |
2021/03/07(日) 17:51:15.16ID:5FBwssoR0
>>838
悔し買ったか?馬鹿
2021/03/07(日) 18:27:16.06ID:REgzkSN70
な、age厨だろ?
2021/03/07(日) 20:22:49.89ID:l5mf+U2f0
反論できなくてアゲサゲ言い出す奴は見苦しい
2021/03/07(日) 21:30:58.30ID:iHuYVCVV0
言われて下げてやんのwww
843デフォルトの名無しさん (ワッチョイ cb8e-3QAQ)
垢版 |
2021/03/07(日) 22:58:33.05ID:5FBwssoR0
馬鹿は自分が相手にしてるのはただ一人だけと思い込む
2021/03/08(月) 05:43:53.99ID:bSh0ioyn0
な、age厨だろ?
2021/03/08(月) 07:03:19.05ID:+AeHqC2j0
自己紹介www
2021/03/08(月) 09:05:36.54ID:+ItxpBbz0
類友
2021/03/08(月) 09:36:00.68ID:gk28PyLU0
もはや論点なにそれ状態
2021/03/08(月) 10:52:47.61ID:TrYviUKj0
保存して閉じる処理をしても、ファイルは閉じてもExcelはとじません

Private Sub Workbook_BeforeClose(Cancel As Boolean)
'処理
Application.DisplayAlerts = False
Application.Quit
ThisWorkbook.Close savechanges:=True
Application.DisplayAlerts = True
End Sub
これでもダメでした
Application.Quit
ThisWorkbook.Close savechanges:=True
2021/03/08(月) 11:07:15.73ID:9xs5g46P0
ActiveWindow.Close
2021/03/08(月) 11:38:58.50ID:TrYviUKj0
>>849

Application.Quit
ThisWorkbook.Close savechanges:=True
ActiveWindow.Close
これもダメでした
2021/03/08(月) 11:53:11.92ID:9xs5g46P0
Application.Quit
Application.DisplayAlerts = False
ThisWorkbook.Close savechanges:=True
Application.DisplayAlerts = True
2021/03/08(月) 11:57:13.64ID:vFSNvomr0
Application.DisplayAlerts = False
If Workbooks.Count = 1 Then
Application.Quit
Else
ThisWorkbook.Close
Application.DisplayAlerts = True
End If

とかどう?
2021/03/08(月) 11:59:04.12ID:ub+dBY/l0
>>848
何でセーブする前にEXCELのアプリケーション閉じようとしてるの?
2021/03/08(月) 12:04:00.24ID:TrYviUKj0
>>851
>>852

ダメでした。
ほかのファイルでは問題なくExcelが終了するのですが
Private Sub Workbook_BeforeClose(Cancel As Boolean)
を使うマクロのときだけ、閉じなくなるような気がします。関係ありますかね?
2021/03/08(月) 12:23:48.80ID:Qtlmv4rK0
>>853
2021/03/08(月) 12:30:21.22ID:ub+dBY/l0
わざわざセーブメッセージ叩き潰して
ブック捕まえたまんまにして
アプリケーション閉じようとしてるんだから
わざと閉じられないようにしているようにしか見えない
2021/03/08(月) 12:44:18.76ID:Qtlmv4rK0
savechangesでも無限ループしてそう
2021/03/08(月) 12:56:18.62ID:vFSNvomr0
>>854
BeforeCloseにApplication.Quit記述してイミディエイトからThisWorkbook.Closeを実行してみたけど問題なく閉じたから何か別の物が干渉してる可能性があるかなぁ
2021/03/08(月) 13:04:41.43ID:9xs5g46P0
めっちゃ古いバージョンとかじゃないだろうな
2021/03/08(月) 13:32:58.59ID:TrYviUKj0
>>855
当初はこれでしたが、ググったら、Application.Quitを上に書くらしいです

ThisWorkbook.Close savechanges:=True
Application.Quit

>>856
Application.Quit
ThisWorkbook.Close savechanges:=True
だけでも同じでした

>>857
他に保存する方法を教えてください

>>858
自分でも試してみましたが、確かにちゃんと閉じますね。他の干渉を疑ってみます。

>>859
2019です
2021/03/08(月) 13:49:36.30ID:9xs5g46P0
Application.EnableEvents = true
を頭に付けてみるとか
2021/03/08(月) 18:00:51.59ID:+0kCYoNG0
そこでやるべきことは ThisWorkbook.Save だけだと思うんだが
2021/03/08(月) 18:30:55.70ID:bSh0ioyn0
コマンドプロンプトでtaskkill /f /im excel.exe
2021/03/08(月) 19:53:15.72ID:Awv++sSE0
Quitは最後では
変なExcelプロセスが残ってないか確認した方がいいのでは
2021/03/08(月) 21:03:57.98ID:53ng3r6C0
VBEでVBAを使って出来たものがマクロであってる?
本屋にVBAの本とマクロの本があるけど同じことと思っておk?
2021/03/08(月) 21:12:54.65ID:ub+dBY/l0
>>865
半分正解
2021/03/08(月) 21:17:42.97ID:ub+dBY/l0
「VBEで作ったものはマクロ」
これは合ってる
「VBAとマクロは同じことを言っている」
マクロにはVBAtで作られたもの以外に
4.0マクロと言うものが有ってだな・・・
まぁ、あまり気にしなくても良いかもしんないけど
2021/03/08(月) 21:34:20.02ID:B96zl28N0
マクロ
スクリプト
関数
これらはプログラムのひとかたまり
厳密に区別しずらいけどそれぞれ
ニュアンスの違いはある
869デフォルトの名無しさん (アウアウクー MM4f-YFKC)
垢版 |
2021/03/08(月) 21:58:36.85ID:U/cFdqiVM
>>865
VBEはエディタ。Excelの場合はVBAとマクロは同じ意味で使われる。ExcelマクロがExcel VBAのコードで表現されるため。
2021/03/08(月) 22:10:13.99ID:Awv++sSE0
>>867
なんかいろいろ違うぞ
2021/03/08(月) 22:16:46.29ID:Dj6nESKZ0
関数は全然違うだろwww
2021/03/08(月) 22:42:26.89ID:53ng3r6C0
>>866
まだ表紙なのに理解半分かw

>>867
4.0マクロネットで見て使ったこと1回だけあるけど関数みたいなやつだった記憶。

>>868
スクリプトも便利そうですよね。
デスクトップかっこ良くするフリーソフトに自由にスクリプト使えますって書いてあって挫折した。。

>>869
出来たもんがマクロでVBAが設計図でVBEが紙と鉛筆か。

みんなありがと、ネットにも解説サイトあるけど違うとこ見ちゃうから本買ってくるわ。ノシ
2021/03/08(月) 23:14:12.98ID:u4CRr3CF0
そういえばvbaをjsで書ける世界まだなんだっけ?
gasみたいな感じで書けないかな
2021/03/08(月) 23:18:26.32ID:hUWITx/G0
WScriptのJScriptでExcel使えるだろ
2021/03/09(火) 00:19:47.43ID:fLnH8jKyM
>>873
>>834
2021/03/09(火) 02:53:50.15ID:uNAjD4zcH
微妙に違う気がするなあ
VBAはプログラミング言語の名前(の略称)。単語と文法が書いてあるだけの辞書みたいなもん
その言語で書かれた物がマクロで、むしろ設計図はこっちが近い
VBEはマクロの作成を手助けするツール、紙と鉛筆って考え方はだいたい合ってる
で、マクロの中でも結果を一組だけ呼び出し元に返すように作られてるのが関数
2021/03/09(火) 05:15:21.29ID:suvlK62N0
機能とワークシート関数とか全くわからん
操作なんてVBAで良いじゃん
周りでもそういった人いるしさ
2021/03/09(火) 08:22:35.06ID:zXQo4RJq0
本来、Excelの操作の自動化を目的にしたVBAマクロなのに元の機能そのものが全く分からんとか本末転倒にも程がある
879デフォルトの名無しさん (アウアウウー Sa0f-fXuR)
垢版 |
2021/03/09(火) 10:45:46.13ID:pnwu5thka
作成依頼です

一定範囲内において、選択されたセルすべてに、書式設定で取り消し線を付けたいです

たとえば、D5からD20の範囲内で、そこ以外の範囲が選択されていた場合はエラーを返す
範囲内なら、選択されたセル(単一、複数、飛び石あり)すべてに、一括で取り消し線を追加
というような感じです

飛び石状態で複数が選択された場合に、上手く処理できなくて相談させていただきました
よろしくお願い致します
880デフォルトの名無しさん (ワッチョイ fb5f-R8lj)
垢版 |
2021/03/09(火) 11:04:35.36ID:oV9GYLDS0
>>879
そんな仕様のものを作ってはいけない
2021/03/09(火) 11:21:48.31ID:Nc9tdWjH0
>>879
選択範囲をまとめて見るんじゃなくて、選択されたセル一つ一つについて既定の範囲内にあるか条件判断をし、エラーかそうでないか
エラーでなく全てのセルが範囲内なら一つ一つのセルに取り消し線を追加
とすれば普通にできるでしょ
横着しようとしてるからいけないんじゃないの
2021/03/09(火) 11:25:30.81ID:uNAjD4zcH
VBEは赤ペン先生?全部じゃないけど間違いをすぐ教えてくれる
2021/03/09(火) 11:58:31.47ID:zYh1VL3E0
>>879
お金ください
2021/03/09(火) 12:03:56.11ID:uNAjD4zcH
>>879
For Eachでセルを1個ずつ処理するんだよ

For Each、セルアドレスチェック、1つでもD5-D20じゃなかったらエラー
エラーがなかったらもう一度For Each、各セルに取り消し線

みたいな流れ
2021/03/09(火) 12:09:52.12ID:4S2gbixUa
ピボットグラフのスライサー内の選択を変えた時にマクロが動くようにしたいです
イメージ的にはワークシートイベントです
例︰スライサーの日付を変更時にグラフの色を塗る

選択変更の検知方法を教えてください
よろしくお願いします
886デフォルトの名無しさん (ラクッペペ MM7f-gfXM)
垢版 |
2021/03/09(火) 12:25:42.94ID:t7O7P6i9M
外枠なら面倒だけど取り消し線なら簡単だ
2021/03/09(火) 12:38:26.95ID:uNAjD4zcH
外枠でも大差ないと思う
Selectionの上下左右に罫線を引くだけ
888デフォルトの名無しさん (アウアウウー Sa0f-fXuR)
垢版 |
2021/03/09(火) 12:43:13.10ID:pnwu5thka
>>881
>>884
なるほど、これなら自分でできそうです
ありがとうございました
2021/03/09(火) 13:03:57.82ID:C5e26MY+0
いえいえ、自分でもっと勉強してくださいね
2021/03/09(火) 16:16:21.91ID:1va3W7Si0
>>879
If Intersect(Selection, Range("D5:D20")).Count <> Selection.Count Then
MsgBox "エラー"
Else
Selection.Font.Strikethrough = True
End If
2021/03/10(水) 00:11:15.88ID:seJ5KfaI0
だってさ、先輩がExcelなんか全部マクロで動かせば良いって言われたからさ。。。
ワークシートの関数とかそんなもん覚えなくて良いと言われたからさ。
だからVBAしか知らない。
今凄く関数とか機能を覚えるために苦労してる。
2021/03/10(水) 02:20:07.32ID:Mh5oeh7J0
>>891
無理してやる必要ないのに、何のために覚えるの?
2021/03/10(水) 07:58:05.94ID:seJ5KfaI0
>>892
マクロだけでは遠回りだと気づいて
2021/03/10(水) 08:18:24.93ID:afuwFvM40
vlookupはなんであんな変なインターフェースなんですか
895デフォルトの名無しさん (ブーイモ MM8f-IazI)
垢版 |
2021/03/10(水) 09:29:52.26ID:AjUIRLk9M
ポーカーフェイスですよ
896デフォルトの名無しさん (ワッチョイ fb5f-R8lj)
垢版 |
2021/03/10(水) 10:14:53.26ID:B52MA1yl0
>>894
古いから
897デフォルトの名無しさん (アウアウウー Sa0f-W2tv)
垢版 |
2021/03/10(水) 14:59:19.94ID:hxdj8Ixba
screenupdapingを非表示にした状態でcalculationを自動にしたら、ちゃんと計算やってくれますか?
2021/03/10(水) 15:30:04.25ID:PHH+vFRc0
>>897
自分でやってみりゃいいじゃん
899デフォルトの名無しさん (アウアウウー Sa0f-W2tv)
垢版 |
2021/03/10(水) 15:39:38.02ID:hxdj8Ixba
>>898
updatingが表示になったときに計算されるのか、非表示中に計算されてるのかがわからないのです。
2021/03/10(水) 15:43:34.11ID:TvaGnuXK0
ExcelからVBAが完全になくなるより先にMSが先になくなりそうじゃない?
2021/03/10(水) 15:57:24.48ID:kPBSipVT0
MSがなくなるより先にお前がなくなるんじゃない
2021/03/10(水) 17:04:34.10ID:ij0IDF+ed
その前にIT途上企業のウチの会社がなくなるな
2021/03/10(水) 17:25:36.32ID:PHH+vFRc0
>>899
対象セルのvalue値を処理中に
debug.printで書き出すなり
どこかのセルに突っ込むなり
トレースして確認するなりすればいいじゃん
まず聞く前にググる癖をつけないと
いつまで経っても誰かに聞かないと
何も出来なくなるよ
904デフォルトの名無しさん (アウアウウー Sa0f-W2tv)
垢版 |
2021/03/10(水) 17:37:30.93ID:hxdj8Ixba
>>903
わかりました。てか式の値見ればすぐわかりますね。やってみます
2021/03/10(水) 18:13:57.59ID:osSCK/tE0
今日水曜日なのにweekdayName(weekday(Date))で木曜日と出るのは仕様?

Dateは2021/03/10
weekday(Date)は4
と出ることは確認済み
weekdayとweekdayNameで週始めを日曜とするか月曜とするかで差が出てるんだろうからweekdaynameをvbSundayにすることで解決はするけど、何かが原因でここに違いが出てるなら修正したいので仕様かどうか知りたい
2021/03/10(水) 19:31:18.15ID:WhcyA+8r0
仕様ではない
2021/03/10(水) 19:41:43.99ID:iMortp6N0
Weekdayの規定値がvbSundayで、WeekdayNameの規定値がvbUseSystemDayOfWeek。
どっちかに合わせた方がいいと思う。
2021/03/10(水) 20:15:11.47ID:FQxPGFWfa
やっぱり>>885の方法はないですかね
諦めてマクロボタンで更新します
ありがとうございました
2021/03/11(木) 16:08:09.65ID:2F7MZ2cN0
>>907
なるほど、自分のwindowsカレンダーの開始日が月曜になってるからなのか
なんで既定値が違うんだろうという疑問は残りつつも納得、ありがとうございました
2021/03/12(金) 14:18:56.93ID:cUuyzc0G0
VBA学ぶのにお勧めの本ありますか?
911デフォルトの名無しさん (ワッチョイ 7d5f-6Qoe)
垢版 |
2021/03/12(金) 14:22:39.95ID:b9Kr93A50
>>910
MOSの本
912デフォルトの名無しさん (ワッチョイ 7d5f-6Qoe)
垢版 |
2021/03/12(金) 14:25:27.81ID:b9Kr93A50
正確にはVBAエキスパートか。

見過されがちだけど、試験対策本は非常によくまとまっている。
913デフォルトの名無しさん (ドコグロ MM4a-GUUA)
垢版 |
2021/03/12(金) 17:44:33.68ID:UcsTGFzQM
買う前に周辺の図書館を回れば、vba本が見つかるかもしれない
914デフォルトの名無しさん (アウアウクー MM51-6Qoe)
垢版 |
2021/03/12(金) 19:23:46.81ID:7Crflr6rM
金額の話なのか?
2021/03/12(金) 19:31:10.39ID:f8Q6HjqoM
650頁を超える「Excel VBA逆引き辞典パーフェクト」を最初から通して読む
2021/03/12(金) 23:07:31.55ID:NBdc6r9a0
VBの、何かあの電話帳より分厚いの有るじゃん
叩かれると85ポイントくらいダメージを受けそうな感じのアレ
マジレスすると、あれで勉強したわ
2021/03/12(金) 23:38:50.44ID:sGQx1lBf0
>>894
XLookupを使いなさい
2021/03/13(土) 02:37:38.41ID:5xXr3I9d0
まじレスすると他人のおすすめの本は買っただけで満足して読まない可能性が高い
2021/03/13(土) 07:57:23.36ID:slDJWJ280
>>910
出来るだけ薄い奴がいいよ
少なくとも一週間で読み切れそうな奴
細かい部分は結局ググる事になるから手っ取り早く基礎だけ学べるのがいい

プログラミングの勉強は書き方を学ぶというより、
「ググる方法、ググって出てきた内容を理解できる最低限の知識」を身に着ける方に重きを置いた方がいい
2021/03/13(土) 08:14:07.47ID:csBuBYNL0
>>910
現在の知識レベルによって薦める本は変わってくるけどなーんも知らないと言うのならVBAの絵本でいいんじゃなかろか

>>919の人も言ってるけど基本、ネットで調べることになるんでどちらかというと
自分が知りたいことを調べられる単語をすぐに思い浮かべる力と
それを理解する力の方が自分的には重要な気がする
後、理解出来なければ取り敢えず書いてみてこねくり回すことも大事

本当に基本的なことさえ分かっていれば、
その内クラスやAPI、コールバックとかにぶつかることがあってもネットで調べることが出来れば
自分が然るべき理解力をつけた際に理解出来るようになる。
921デフォルトの名無しさん (ワッチョイ 7d5f-6Qoe)
垢版 |
2021/03/13(土) 08:17:01.13ID:tBGlpruK0
メルカリなどでたくさん買って、好きなのを使えばいいよ。
2021/03/13(土) 11:51:20.74ID:9LAtgmD40
>>910
VBAの神様
923デフォルトの名無しさん (ワイーワ2 FFca-6Qoe)
垢版 |
2021/03/13(土) 14:55:26.89ID:4/YYKqK7F
Excel VBAは自己流が多いと思うけど、体系的に学習するならマイクロソフトのVBAエキスパート本だろうな。
2021/03/13(土) 21:38:13.19ID:99ipLDsT0
小手先のテクニックより
複雑怪奇なExcelの挙動の中身がどうなってんのか
詳細に説明してほしいわ

謎挙動がおおすぎる
2021/03/13(土) 21:57:08.91ID:7fDCnZwF0
具体的には?
926デフォルトの名無しさん (ワッチョイ 7d5f-6Qoe)
垢版 |
2021/03/13(土) 22:05:26.89ID:tBGlpruK0
>>924
あまり使われていないVBAの機能を使うとすぐにバグにはまる。
927デフォルトの名無しさん (ワッチョイ 7d5f-6Qoe)
垢版 |
2021/03/13(土) 22:07:49.91ID:tBGlpruK0
ActiveXのボタンが消えるバグなどは放置状態
2021/03/14(日) 01:08:53.96ID:EQ7/9AB00
vbの構文がダサすぎるのが嫌
綺麗に書いても汚らしく見える Dim asとかキモいんだよ
2021/03/14(日) 02:39:44.98ID:QAEhurjz0
VBAのコードのフォントを HGP行書体 (日本語) とかにしてみたら?
レス数が900を超えています。1000を超えると表示できなくなるよ。