ExcelのVBAに関する質問スレです
コード書き込みや作成依頼もOK
※前スレ
Excel VBA 質問スレ Part57
https://mevius.5ch.net/test/read.cgi/tech/1536583359/
探検
Excel VBA 質問スレ Part58
■ このスレッドは過去ログ倉庫に格納されています
2018/11/19(月) 06:47:24.99ID:Qq88xGOU
521デフォルトの名無しさん
2019/01/18(金) 04:56:39.52ID:iqHxmsyd 馬鹿には入れさせないだけ
522デフォルトの名無しさん
2019/01/18(金) 08:20:26.64ID:FdTpqa5z523デフォルトの名無しさん
2019/01/18(金) 08:59:50.59ID:HmTdANXo まずOS標準のPowershellでできることをやる
規模が大きくなって型安全性などが欲しくなったら.net CLIとVSCodeを入れる
VBAは本当にVBAが必要で他に選択肢がない場合にしょうがなく使う
規模が大きくなって型安全性などが欲しくなったら.net CLIとVSCodeを入れる
VBAは本当にVBAが必要で他に選択肢がない場合にしょうがなく使う
524デフォルトの名無しさん
2019/01/18(金) 09:13:15.26ID:FdTpqa5z なんでExcel標準のVBAを使わないのかねw
バカじゃないの?
バカじゃないの?
525デフォルトの名無しさん
2019/01/18(金) 09:58:22.02ID:Xg90leRQ VBAは公式には「レガシー」で「非推奨」な機能だよ
526デフォルトの名無しさん
2019/01/18(金) 10:27:15.84ID:02H4sO2V うちは無料ならツール申請すれば通常通るし、理由もそんなに掘り下げて詮索されることはない。
有料だととたんにハードルが上がるけど。
んでVisual Studioやらなんやら入れた後もVBAはがんがん使ってるな。
C++/C#と比較してもアドバンテージはあると思うよ。
ちなみにPowershellは起動できないようになってる。権限の問題だから単なるインストール申請よりハードル上がるとおもう。
有料だととたんにハードルが上がるけど。
んでVisual Studioやらなんやら入れた後もVBAはがんがん使ってるな。
C++/C#と比較してもアドバンテージはあると思うよ。
ちなみにPowershellは起動できないようになってる。権限の問題だから単なるインストール申請よりハードル上がるとおもう。
527デフォルトの名無しさん
2019/01/18(金) 12:01:36.56ID:dGgLcYHd528デフォルトの名無しさん
2019/01/18(金) 12:06:44.97ID:Xg90leRQ529デフォルトの名無しさん
2019/01/18(金) 12:54:22.16ID:FdTpqa5z PowerShellはデフォルトで実行出来ないでしょ。
で、実行できるようにして良いかが問題となる。
で、実行できるようにして良いかが問題となる。
530デフォルトの名無しさん
2019/01/18(金) 13:32:03.41ID:ld1N2+LD うちは共有pcだと社員の個人情報とか社外秘のデータも扱っているから
情報漏洩やコンプライアンスはうるさいんだよね
そういうの適当な会社がうらやましいよ
情報漏洩やコンプライアンスはうるさいんだよね
そういうの適当な会社がうらやましいよ
531デフォルトの名無しさん
2019/01/18(金) 13:46:56.62ID:dGgLcYHd532デフォルトの名無しさん
2019/01/18(金) 13:52:14.57ID:dGgLcYHd533デフォルトの名無しさん
2019/01/18(金) 15:05:03.66ID:u9bkOu0s PowerShellデフォルトでスクリプト実行できないのは致命的。
「え?デフォルトからセキュリティ弛めるの?大丈夫なの?」ってなる。
「え?デフォルトからセキュリティ弛めるの?大丈夫なの?」ってなる。
534デフォルトの名無しさん
2019/01/18(金) 15:58:31.39ID:N2j3ka14535デフォルトの名無しさん
2019/01/18(金) 18:10:43.98ID:u9bkOu0s >>534
ウザっ
ウザっ
536デフォルトの名無しさん
2019/01/18(金) 18:21:14.18ID:FdTpqa5z537デフォルトの名無しさん
2019/01/18(金) 18:36:02.88ID:dGgLcYHd538デフォルトの名無しさん
2019/01/18(金) 19:50:38.17ID:BPWAMvDw ExecutionPolicyはCurrentUserスコープなら権限不要で変更可能
陽
この情報はプロならみんな知ってるけどアマチュアは知らない人が多いね
陽
この情報はプロならみんな知ってるけどアマチュアは知らない人が多いね
539デフォルトの名無しさん
2019/01/18(金) 20:36:05.00ID:3Aai6ayN 実行の話じゃないでしょ
540デフォルトの名無しさん
2019/01/18(金) 20:43:46.91ID:FdTpqa5z >>537
???
今まで何の話をしてたんだ?
PowerShellの方がVBAより有利だと言いたかったんじゃないの?
君の発言を聞いてるとPowerShellはますます使いものにならないように感じるんだが、もしかして君は実はVBAの方が有利だと言いたかったのか?
???
今まで何の話をしてたんだ?
PowerShellの方がVBAより有利だと言いたかったんじゃないの?
君の発言を聞いてるとPowerShellはますます使いものにならないように感じるんだが、もしかして君は実はVBAの方が有利だと言いたかったのか?
541デフォルトの名無しさん
2019/01/18(金) 21:06:07.91ID:dGgLcYHd542デフォルトの名無しさん
2019/01/18(金) 21:45:43.94ID:WMbv0rpV あれ? ExcelってVBAをデフォルトで実行できたっけ?
543デフォルトの名無しさん
2019/01/18(金) 22:19:33.59ID:dGgLcYHd544デフォルトの名無しさん
2019/01/18(金) 23:37:19.13ID:c34mocfv 設定を変えなければ動かないことをデフォルトでは動かないというんじゃないかね
設定を変えるのが簡単かどうかは別問題だろ
設定を変えるのが簡単かどうかは別問題だろ
545デフォルトの名無しさん
2019/01/18(金) 23:49:44.04ID:LGpZNaP9 右クリックするだけだろ
546デフォルトの名無しさん
2019/01/19(土) 00:13:36.27ID:Fjsb0QYM 既定では
右クリック→管理者として実行
右クリック→やWindowsPowerShellで実行
いずれも.ps1スクリプトは実行できない
>>543もまちがい
既定状態のPCでも
powershell -executionpolicy remotesigned -file 'hoge.ps1'
などと打てば自動的にプロセススコープで自作のスクリプトなどを実行可能
右クリック→管理者として実行
右クリック→やWindowsPowerShellで実行
いずれも.ps1スクリプトは実行できない
>>543もまちがい
既定状態のPCでも
powershell -executionpolicy remotesigned -file 'hoge.ps1'
などと打てば自動的にプロセススコープで自作のスクリプトなどを実行可能
547デフォルトの名無しさん
2019/01/19(土) 02:49:20.82ID:S0ghMGDC PowerShell -Part 3
https://mevius.5ch.net/test/read.cgi/tech/1539074808/
https://mevius.5ch.net/test/read.cgi/tech/1539074808/
548デフォルトの名無しさん
2019/01/19(土) 05:10:03.36ID:+IqL7b8U549デフォルトの名無しさん
2019/01/19(土) 06:27:03.00ID:wkXfpZQC VBAってデフォルトでは動かないんだっけ?
マクロ入りファイルを開く時は許可か設定が必要だけど、新規ブックならいきなり使えたような
再インストールして確認するのは面倒だからうろ覚えだけど
マクロ入りファイルを開く時は許可か設定が必要だけど、新規ブックならいきなり使えたような
再インストールして確認するのは面倒だからうろ覚えだけど
550デフォルトの名無しさん
2019/01/19(土) 07:08:08.04ID:fPDnzLoP VBAはそもそもオフィスのインストールという過酷な作業が必要だからな
アマチュアの事務員さんは用意されたパソコンを使うだけだから知らないのかもしれないがな
プロはプロジェクトのたびに全員のパソコンを誰かが準備しなきゃならんのよ
オフィスのインストール作業は地味にでかい工数になるんだ
アマチュアの事務員さんは用意されたパソコンを使うだけだから知らないのかもしれないがな
プロはプロジェクトのたびに全員のパソコンを誰かが準備しなきゃならんのよ
オフィスのインストール作業は地味にでかい工数になるんだ
551デフォルトの名無しさん
2019/01/19(土) 08:17:46.72ID:pNQS4Xn+ デフォルトで信頼されてる場所のファイルでも動かなかったっけ?
大昔のエクセルならデフォルトでどこでもマクロ動いてたけどなw
大昔のエクセルならデフォルトでどこでもマクロ動いてたけどなw
552デフォルトの名無しさん
2019/01/19(土) 10:55:07.59ID:gJfblIQ2 実行するファイルとは別に呼び出す仕組みを用意する必要があるからpowershellがクソだって言われてるのが分からないのか?
頭悪すぎない?
頭悪すぎない?
553デフォルトの名無しさん
2019/01/19(土) 11:03:22.61ID:Fjsb0QYM 実行スコープを細かく規定出来るのは進歩。クソだとのたまうアホはセキュリティ意識がおかしい
554デフォルトの名無しさん
2019/01/19(土) 11:07:55.26ID:OmtBIHUo 右クリックするだけだろ
555デフォルトの名無しさん
2019/01/19(土) 11:12:21.71ID:gJfblIQ2 そのスコープを組み込めない時点で終わってるという話をしているんですよ?
556デフォルトの名無しさん
2019/01/19(土) 11:39:33.19ID:fPDnzLoP スコープを組み込む
この言葉の意味がよくわからんので詳しく説明してみて
この言葉の意味がよくわからんので詳しく説明してみて
557デフォルトの名無しさん
2019/01/19(土) 11:47:23.37ID:fPDnzLoP vbaもエクセルファイル自体が実行可能な訳じゃなくエクセルというプログラムが解釈してやってるだけ
なのでvbaも別に呼び出す仕組みが必要と言っていい
その仕組みは膨大なインストール時間とライセンス料金を支払ってオフィスをインストールするという苦行を乗り越えないと利用できない
それに比べたらパワーシェルは実行までの手間は殆ど無視できるほど小さい
シェルでたったの1行コマンドレットを打つだけでOK
しかも無料なので嬉しいね
なのでvbaも別に呼び出す仕組みが必要と言っていい
その仕組みは膨大なインストール時間とライセンス料金を支払ってオフィスをインストールするという苦行を乗り越えないと利用できない
それに比べたらパワーシェルは実行までの手間は殆ど無視できるほど小さい
シェルでたったの1行コマンドレットを打つだけでOK
しかも無料なので嬉しいね
558デフォルトの名無しさん
2019/01/19(土) 11:47:30.68ID:gJfblIQ2 OSのデフォルト状態で出来ることが前提
拡張子が.ps1の場合右クリックのメニューにremotesingedを表示させるとか?
拡張子が.ps1の場合右クリックのメニューにremotesingedを表示させるとか?
559デフォルトの名無しさん
2019/01/19(土) 11:51:02.97ID:8CGfSDeG もうその話はpowershellのスレに移動してやってください
560デフォルトの名無しさん
2019/01/19(土) 11:51:52.41ID:1cEunHBW561デフォルトの名無しさん
2019/01/19(土) 12:11:34.94ID:lm8WiCyM 現実社会では話ができない寂しい「プロ」」のプログラマどもが何やらくだらん
雑談をしてスレを潰してるけど質問者の皆さんはそんなヨタ話に付き合う必要
はありませんので、遠慮なく質問をどぞ〜
雑談をしてスレを潰してるけど質問者の皆さんはそんなヨタ話に付き合う必要
はありませんので、遠慮なく質問をどぞ〜
562デフォルトの名無しさん
2019/01/19(土) 12:14:32.41ID:oaSrkPrl ところでホンマにブロなん?プロさんて?なんかあやしいんですけどw
563デフォルトの名無しさん
2019/01/19(土) 12:25:03.26ID:4FsWRGgY Officeインストールするしないがオプションなんて事業所あるの?
564デフォルトの名無しさん
2019/01/19(土) 12:40:58.29ID:wkXfpZQC 厳密な定義や資格があるわけじゃないんで「プロ」を名乗るのは自由です
565デフォルトの名無しさん
2019/01/19(土) 13:14:50.16ID:fPDnzLoP566デフォルトの名無しさん
2019/01/19(土) 13:21:53.40ID:+IqL7b8U567デフォルトの名無しさん
2019/01/19(土) 13:26:53.56ID:4FsWRGgY CADなんかの専用ソフトしか動かさんとか開発機とかそういうのならわかるけど、
このスレで話題にする以上関係ないというか対象外でしょ
このスレで話題にする以上関係ないというか対象外でしょ
568デフォルトの名無しさん
2019/01/19(土) 13:35:07.44ID:Fjsb0QYM 普通はイメージで展開して、個別はライセンス認証だけっしょ一台数分
569デフォルトの名無しさん
2019/01/19(土) 14:06:33.45ID:/+FUwnIm >>558
へえ、ExcelってOSのデフォルト状態で使えるんだ?
へえ、ExcelってOSのデフォルト状態で使えるんだ?
570デフォルトの名無しさん
2019/01/19(土) 14:46:59.67ID:Qiw5pxsO WSHだろ常考
571デフォルトの名無しさん
2019/01/19(土) 15:22:25.47ID:wiNfQeeu >>523-537
例えば、クリップボードでも、Ruby から、powershell コマンドを呼ぶ。
a.rb
str = `powershell Get-Clipboard`
str.encode! Encoding::UTF_8, Encoding::CP932 # UTF_8 へ変換
これをダブルクリックで起動したいのなら、バッチかVBS で起動する。
a.bat
ruby .\a.rb
テキスト処理は、VSCode, Rubyで十分!
例えば、クリップボードでも、Ruby から、powershell コマンドを呼ぶ。
a.rb
str = `powershell Get-Clipboard`
str.encode! Encoding::UTF_8, Encoding::CP932 # UTF_8 へ変換
これをダブルクリックで起動したいのなら、バッチかVBS で起動する。
a.bat
ruby .\a.rb
テキスト処理は、VSCode, Rubyで十分!
572デフォルトの名無しさん
2019/01/19(土) 15:49:39.46ID:BW5TF7JU >>571
VSCodeは個別にライセンスのある膨大な数のオープンソースソフトウェアの塊であり、
PowerShellを禁止しているような糞組織のPCにインストールすることは不可能
RubyもライセンスにGPLの文字を見つけた途端に情シスが卒倒するレベルで全くもって論外
VSCodeは個別にライセンスのある膨大な数のオープンソースソフトウェアの塊であり、
PowerShellを禁止しているような糞組織のPCにインストールすることは不可能
RubyもライセンスにGPLの文字を見つけた途端に情シスが卒倒するレベルで全くもって論外
573デフォルトの名無しさん
2019/01/19(土) 21:28:25.59ID:AuMD8hxP プロさんてバカしかおらんの?
574デフォルトの名無しさん
2019/01/19(土) 21:35:07.05ID:+IqL7b8U 所詮自称プロだしw
575デフォルトの名無しさん
2019/01/19(土) 21:40:37.46ID:AuMD8hxP >>574
開きなおるなバカ
開きなおるなバカ
576デフォルトの名無しさん
2019/01/19(土) 22:05:47.19ID:+IqL7b8U577デフォルトの名無しさん
2019/01/19(土) 22:06:05.61ID:ARTGttMK excelってVBAからpythonに変わるっていってなかったっけ?
>>577
いってるだけ、今のところは
いってるだけ、今のところは
579デフォルトの名無しさん
2019/01/20(日) 00:48:58.52ID:QFn18v7i dictionaryに格納してるItemを検索して、存在してればKeyを返却する方法が知りたいのだけど、ループさせてヒットしたら値を出す方法以外でfind的な一発でポンと返す記述の仕方はない?
>>579
Item 間に順序関係があればそれを利用して二分探索を適用できる、無論、記述はループチェックに比べて量が多くなる
Item 間に順序関係があればそれを利用して二分探索を適用できる、無論、記述はループチェックに比べて量が多くなる
581デフォルトの名無しさん
2019/01/20(日) 03:54:11.74ID:IAu7YphR >>579
一行で書きたいということなら、文字列ならワークシート関数Matchで検索できます。
ただ存在しなかった場合はエラーが返るので例外処理か事前に調べておく必要があります。
例)
Dim map As Dictionary
Set map = New Dictionary
map.Add "みかん", "橙"
map.Add "りんご", "赤"
map.Add "さくらんぼ", "赤"
map.Add "ぶどう", "紫"
On Error Resume Next
Debug.Print map.Keys(WorksheetFunction.Match("赤", map.Items, 0) - 1)
'りんご
Debug.Print map.Keys(WorksheetFunction.Match("白", map.Items, 0) - 1)
'エラー
On Error GoTo 0
個人的には普通に関数作った方が使いやすいと思います。
一行で書きたいということなら、文字列ならワークシート関数Matchで検索できます。
ただ存在しなかった場合はエラーが返るので例外処理か事前に調べておく必要があります。
例)
Dim map As Dictionary
Set map = New Dictionary
map.Add "みかん", "橙"
map.Add "りんご", "赤"
map.Add "さくらんぼ", "赤"
map.Add "ぶどう", "紫"
On Error Resume Next
Debug.Print map.Keys(WorksheetFunction.Match("赤", map.Items, 0) - 1)
'りんご
Debug.Print map.Keys(WorksheetFunction.Match("白", map.Items, 0) - 1)
'エラー
On Error GoTo 0
個人的には普通に関数作った方が使いやすいと思います。
582デフォルトの名無しさん
2019/01/20(日) 08:04:01.23ID:cWi8furK583デフォルトの名無しさん
2019/01/20(日) 08:25:03.17ID:KJwN8fo6 配列とかコレクションに対してSQLが使えればいいんだけどな。
matchやvlookupより速いんだけど、いちいちシートとかcsvに書き出さなきゃならん。
matchやvlookupより速いんだけど、いちいちシートとかcsvに書き出さなきゃならん。
584デフォルトの名無しさん
2019/01/20(日) 09:17:44.39ID:OfXqqqKI そこまで行くとAccessのお仕事を食っちまう
585デフォルトの名無しさん
2019/01/20(日) 09:22:18.21ID:1t0h4eLG Access VBAでやればいいじゃん
586デフォルトの名無しさん
2019/01/20(日) 09:32:11.24ID:brNktcWU >>582
おっと、回答いただけるとは。
onkeyだと、activeworkbookだろうが、thisworkbookだろうが、後定義したほうが上書き、後勝ちしません?
active側に定義されたショートカットがそれぞれ反応してくれると嬉しいのですが。
おっと、回答いただけるとは。
onkeyだと、activeworkbookだろうが、thisworkbookだろうが、後定義したほうが上書き、後勝ちしません?
active側に定義されたショートカットがそれぞれ反応してくれると嬉しいのですが。
587デフォルトの名無しさん
2019/01/20(日) 10:54:01.49ID:mVpLWWyp588デフォルトの名無しさん
2019/01/20(日) 13:02:37.66ID:QFn18v7i589デフォルトの名無しさん
2019/01/20(日) 13:13:34.11ID:k7Xn9dKz C#スクリプトってOSSで軌道に乗っちゃってるからExcelの処理系として採用されることはないと思うぞ
同じものをClosedで再発明するってのも馬鹿馬鹿しいしな
強力な言語を使いたいならその言語を主としてExcelをコントロールすればいい
それで十分だ
わざわざExcelに乗っける必要性は薄い
同じものをClosedで再発明するってのも馬鹿馬鹿しいしな
強力な言語を使いたいならその言語を主としてExcelをコントロールすればいい
それで十分だ
わざわざExcelに乗っける必要性は薄い
590デフォルトの名無しさん
2019/01/20(日) 13:31:13.08ID:mVpLWWyp 再発明とか意味わからん w
591デフォルトの名無しさん
2019/01/20(日) 16:43:57.95ID:tNp2z70l この場合の再発明と言われれば車輪の再発明を連想出来ないのはかなり緩いんだろう
592デフォルトの名無しさん
2019/01/20(日) 17:26:38.62ID:GHMQXw/N 文脈的には再発明と言うより再実装かな
593デフォルトの名無しさん
2019/01/20(日) 17:32:05.81ID:mVpLWWyp いや、車輪の再発明はいいとして何を再発明するんだよって話
C#処理系のソースライセンス見てないけどMSが自社製品に使えなくなるようなライセンスにはなってないだろうし(なってたらVisual Studioの有償版とか売れなくなる)
普通にExcelに組み入れるだけだろ
C#処理系のソースライセンス見てないけどMSが自社製品に使えなくなるようなライセンスにはなってないだろうし(なってたらVisual Studioの有償版とか売れなくなる)
普通にExcelに組み入れるだけだろ
594デフォルトの名無しさん
2019/01/20(日) 17:45:17.54ID:TQeakhfS >>593
メンテナンスのコストを甘く見すぎ
Excelに入れるなら最低でも以後10年は完全な互換性を維持し続けなきゃいけないわけ
今メインストリームのC#環境を入れるなら.NET Coreを組み込むことになるだろうけど、
.NET Coreって完全なサイドバイサイドを前提にガンガン破壊的変更をぶっ込んでいくスタイルだから、
Excelのバージョンアップのときに単純に.NET Coreのバージョンを上げるわけにはいかなくて、
Excel専用のブランチを作って継続的にメンテしていかざるを得ないの
それは実質的には新たに.NETの兄弟分を作って独立して育てていくことに他ならず、多大なメンテナンスコストを生じる上、
.NET エコシステムの分断を生むことになる
そんな馬鹿げたことをするくらいなら普通に.NET Coreを直接使わせた方が遥かにマシだろう
メンテナンスのコストを甘く見すぎ
Excelに入れるなら最低でも以後10年は完全な互換性を維持し続けなきゃいけないわけ
今メインストリームのC#環境を入れるなら.NET Coreを組み込むことになるだろうけど、
.NET Coreって完全なサイドバイサイドを前提にガンガン破壊的変更をぶっ込んでいくスタイルだから、
Excelのバージョンアップのときに単純に.NET Coreのバージョンを上げるわけにはいかなくて、
Excel専用のブランチを作って継続的にメンテしていかざるを得ないの
それは実質的には新たに.NETの兄弟分を作って独立して育てていくことに他ならず、多大なメンテナンスコストを生じる上、
.NET エコシステムの分断を生むことになる
そんな馬鹿げたことをするくらいなら普通に.NET Coreを直接使わせた方が遥かにマシだろう
595デフォルトの名無しさん
2019/01/20(日) 17:59:54.91ID:mVpLWWyp596デフォルトの名無しさん
2019/01/20(日) 18:07:02.56ID:TQeakhfS597デフォルトの名無しさん
2019/01/20(日) 18:28:52.57ID:mVpLWWyp >>596
いや破壊的かどうかは別にしてもVBAも色々機能追加とかされてるだろ
VBAの機能追加をやめてそのリソースをC# for Officeに割くだけだよ
そもそもMac版はともかくWindows版のOfficeなら.NET Coreじゃなくて.NET Framework上に構築するだろうしな
いや破壊的かどうかは別にしてもVBAも色々機能追加とかされてるだろ
VBAの機能追加をやめてそのリソースをC# for Officeに割くだけだよ
そもそもMac版はともかくWindows版のOfficeなら.NET Coreじゃなくて.NET Framework上に構築するだろうしな
598デフォルトの名無しさん
2019/01/20(日) 18:31:24.08ID:wKV5+GB/ みっともないからいいかげん止めや似非プロさんの一人語り
そもそも出鱈目やってバレバレのプロ風の話して誰に対してマウント取りたいねんw
そもそも出鱈目やってバレバレのプロ風の話して誰に対してマウント取りたいねんw
599デフォルトの名無しさん
2019/01/20(日) 18:46:13.28ID:TQeakhfS600デフォルトの名無しさん
2019/01/20(日) 20:02:31.83ID:mVpLWWyp601デフォルトの名無しさん
2019/01/20(日) 22:44:30.32ID:aU4dkoPo A4用紙に上から4件ずつ異なるデータを入力して、
印刷したいのですが、どうすればいいか教えて下さい。
データ数は日によって異なり、30件〜50件程度あります。
1ページ目に1〜4、2ページ目に5〜8・・・という感じです。
うまく説明出来なくてすいません。
4つデータを入力して印刷したら次、っていう感じの
ループ処理のコードのサンプルなどありましたら教えてください。
印刷したいのですが、どうすればいいか教えて下さい。
データ数は日によって異なり、30件〜50件程度あります。
1ページ目に1〜4、2ページ目に5〜8・・・という感じです。
うまく説明出来なくてすいません。
4つデータを入力して印刷したら次、っていう感じの
ループ処理のコードのサンプルなどありましたら教えてください。
602デフォルトの名無しさん
2019/01/20(日) 22:48:25.28ID:GTDVzsz1603デフォルトの名無しさん
2019/01/20(日) 22:55:12.40ID:aU4dkoPo >>602
ありがとうございます。
ありがとうございます。
604デフォルトの名無しさん
2019/01/21(月) 09:00:45.75ID:MgnF8xe3 このループw
他言語を推奨してる奴らには馬鹿しかいない。
ExcelVBAのスレなんだからExcelが動いてるのが大前提なんだよ。
そこへノコノコ乗り込んで来てOfficeインスト―ルとか言ってる馬鹿は滑稽。
テキスト処理とかもアホ丸出し。
Excel関係無いなら、そもそもVBAでやる必要全く無い。
そして全くのスレ違い。
他言語を推奨してる奴らには馬鹿しかいない。
ExcelVBAのスレなんだからExcelが動いてるのが大前提なんだよ。
そこへノコノコ乗り込んで来てOfficeインスト―ルとか言ってる馬鹿は滑稽。
テキスト処理とかもアホ丸出し。
Excel関係無いなら、そもそもVBAでやる必要全く無い。
そして全くのスレ違い。
605デフォルトの名無しさん
2019/01/21(月) 09:04:27.40ID:MgnF8xe3 その後のC#やPythonを組み込んでくれって話はどうでもいい。
入って来たらそれで組むだけだ。
入って来たらそれで組むだけだ。
606デフォルトの名無しさん
2019/01/21(月) 10:06:31.18ID:NbFzEAOW 終わった話にノコノコ乗り込んでくるウスノロかよww
607デフォルトの名無しさん
2019/01/21(月) 12:17:14.05ID:HulQp10o 言われてみればVBAの破壊的仕様変更ってまったく無いよな。
オブジェクトを省略してて挙動が変わったくらいならあるけど。
64bit対応くらいじゃ無いか?
オブジェクトを省略してて挙動が変わったくらいならあるけど。
64bit対応くらいじゃ無いか?
608デフォルトの名無しさん
2019/01/21(月) 16:29:48.24ID:0Hj4ohcs LongPtr型とPtrSafe宣言くらいか
609デフォルトの名無しさん
2019/01/21(月) 20:06:20.50ID:mtdQDW0I >>607
ただパッチいれたら動かなくなったことはあった
ただパッチいれたら動かなくなったことはあった
610デフォルトの名無しさん
2019/01/21(月) 20:57:18.88ID:MgnF8xe3 2007の時、グラフ周りが軒並み動かなくなったことはあったな。
611デフォルトの名無しさん
2019/01/21(月) 22:36:48.74ID:+ZXh/xZN 改ページ位置の誤検出がヒドイ。
一旦、改ページプレビューにしてから戻せば大丈夫ですとか、何だよそれ。
一旦、改ページプレビューにしてから戻せば大丈夫ですとか、何だよそれ。
612デフォルトの名無しさん
2019/01/21(月) 23:15:39.37ID:liT1rB8S 64bitはスクリプトオブジェクトがないとかは?
613デフォルトの名無しさん
2019/01/22(火) 00:07:05.98ID:TC75Tgsq よろしくお願いします。
あるシートのコピーだけを新規の別ファイルとして保存したいのですが、
1 dim fn as string
2 fn="c:\*****\集計表.csv"
3 ThisWorkbook.Worksheets("集計表").Copy
4 Application.DisplayAlerts = False
5 ActiveWorkbook.SaveAs fileName:=fn, FileFormat:=xlCSV
6 ActiveWorkbook.Close
このように書きました。普通だと問題なくいっているのですが、この処理をしている途中で、
使用者がガチャガチャとマウスをイジり、いくつも開いているうちの適当なブックをアクティブにしてしまった
りなどしてると、想定通りの動作をしなくなってしまいます。
3行目でコピーしたときに、コピー先のその新しいブック自体を名指しできれば、いいのではないかと
思うのですが、いかがでしょうか?
「ActiveWorkBook」ではなく、ちゃんと名指しする方法ってないでしょうか?
あるシートのコピーだけを新規の別ファイルとして保存したいのですが、
1 dim fn as string
2 fn="c:\*****\集計表.csv"
3 ThisWorkbook.Worksheets("集計表").Copy
4 Application.DisplayAlerts = False
5 ActiveWorkbook.SaveAs fileName:=fn, FileFormat:=xlCSV
6 ActiveWorkbook.Close
このように書きました。普通だと問題なくいっているのですが、この処理をしている途中で、
使用者がガチャガチャとマウスをイジり、いくつも開いているうちの適当なブックをアクティブにしてしまった
りなどしてると、想定通りの動作をしなくなってしまいます。
3行目でコピーしたときに、コピー先のその新しいブック自体を名指しできれば、いいのではないかと
思うのですが、いかがでしょうか?
「ActiveWorkBook」ではなく、ちゃんと名指しする方法ってないでしょうか?
いろいろな事情があって、ExcelVBA に専心することになりそうです…Excel VBA から任意の win32api を呼び出すことは可能ですか?
615デフォルトの名無しさん
2019/01/22(火) 00:44:54.38ID:KMNb7p7Q >>613
処理中いじるなと表示させたフォームをモーダルにして処理終わるまで×ボタン消しとくとかは?
処理中いじるなと表示させたフォームをモーダルにして処理終わるまで×ボタン消しとくとかは?
616デフォルトの名無しさん
2019/01/22(火) 02:38:45.16ID:WVGq8ekA activeじゃなくてもsaveできるだろ
617デフォルトの名無しさん
2019/01/22(火) 05:03:39.16ID:1xYsQegz >>613
方法1:新規ブックはWorkbooksコレクションの末尾に追加されるはずなので、Workbooks (Workbooks.Count)で参照できます。
方法2:先に新規ブックを作っておけば参照出来ます。
余計な新規シートが触られる不安があるなら削除する必要があります※
例)
With Workbooks.Add
Dim fn As String: fn = "c:\*****\集計表.csv"
Worksheets("集計表").copy Before:=.Worksheets(1)
Application.DisplayAlerts = False
Dim elem As Worksheet '※
For Each elem In .Worksheets
If elem.Name <> "集計表" Then elem.Delete
Next elem
.SaveAs Filename:=fn, FileFormat:=xlCSV
.Close
End With
方法3:集計表なので数式が入っていると思いますから、Copy時のCalculateイベントでシート自身に保存させます。
例)
Private Sub Worksheet_Calculate()
If Worksheets.Count > 1 Then Exit Sub 'Copyされた単一シートか判定
Dim fn As String: fn = "c:\*****\集計表.csv"
Application.DisplayAlerts = False
ThisWorkbook.SaveAs Filename:=fn, FileFormat:=xlCSV
ThisWorkbook.Close
End Sub
上記を集計表シートのシートモジュールに書き込むと、Worksheets("集計表").Copy だけで自動的に保存されます。
方法1:新規ブックはWorkbooksコレクションの末尾に追加されるはずなので、Workbooks (Workbooks.Count)で参照できます。
方法2:先に新規ブックを作っておけば参照出来ます。
余計な新規シートが触られる不安があるなら削除する必要があります※
例)
With Workbooks.Add
Dim fn As String: fn = "c:\*****\集計表.csv"
Worksheets("集計表").copy Before:=.Worksheets(1)
Application.DisplayAlerts = False
Dim elem As Worksheet '※
For Each elem In .Worksheets
If elem.Name <> "集計表" Then elem.Delete
Next elem
.SaveAs Filename:=fn, FileFormat:=xlCSV
.Close
End With
方法3:集計表なので数式が入っていると思いますから、Copy時のCalculateイベントでシート自身に保存させます。
例)
Private Sub Worksheet_Calculate()
If Worksheets.Count > 1 Then Exit Sub 'Copyされた単一シートか判定
Dim fn As String: fn = "c:\*****\集計表.csv"
Application.DisplayAlerts = False
ThisWorkbook.SaveAs Filename:=fn, FileFormat:=xlCSV
ThisWorkbook.Close
End Sub
上記を集計表シートのシートモジュールに書き込むと、Worksheets("集計表").Copy だけで自動的に保存されます。
618デフォルトの名無しさん
2019/01/22(火) 05:11:20.49ID:1xYsQegz Worksheets("集計表").copy
↓修正
ThisWorkbook.Worksheets("集計表").Copy 👀
Rock54: Caution(BBR-MD5:1341adc37120578f18dba9451e6c8c3b)
↓修正
ThisWorkbook.Worksheets("集計表").Copy 👀
Rock54: Caution(BBR-MD5:1341adc37120578f18dba9451e6c8c3b)
619デフォルトの名無しさん
2019/01/22(火) 08:07:57.46ID:rTM/luD7 >>614
トリッキーな技が技があるかもだけど「任意の」となると単独では無理と思った方がいい
トリッキーな技が技があるかもだけど「任意の」となると単独では無理と思った方がいい
620デフォルトの名無しさん
2019/01/22(火) 08:14:29.14ID:J7GVb3Rk621デフォルトの名無しさん
2019/01/22(火) 12:45:48.79ID:/p6ZcYuK declareで追加するだけでしょ
ぐぐればサンプル大量に出てくるし
高度でもない
ぐぐればサンプル大量に出てくるし
高度でもない
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 高市首相の答弁書に「台湾有事答えない」と明記 存立危機発言当時 ★2 [蚤の市★]
- 「偽サッチャー」「自滅的」「時代遅れ」 高市首相の経済政策を海外メディアが酷評 [蚤の市★]
- 【ド軍】山本由伸、WBC出場を決断!ドジャースが本人の意向を尊重、佐々木朗希はチームが故障歴を懸念で不参加 [鉄チーズ烏★]
- 米大統領報道官「日本と強固な同盟維持、中国とも協力」 [少考さん★]
- JA全農が「新おこめ券」…来年9月末の有効期限を新設、必要経費のみ上乗せ ★2 [蚤の市★]
- 【映画】『スーパーマン』のDNAを引き継ぐZ世代の最強ヒロイン!『スーパーガール』 2026年夏に公開予定 予告編も公開 [冬月記者★]
- 女の子集合!
- クランキー(チョコ)高すぎてもう手が出せないんだが
- おまえら宝くじは買わないと当たらないんだぞ?
- ひまでんぼ
- まぁでもボッチちゃんってくだらない男に引っかかってサセ子にされちゃうよね
- 【悲報】女さん「ハローワークで仕事を探してる3-40代の中年男性いるでしょ。あれ何?」 [483447288]
