![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?c9bd177)
VBAの以下プログラムがあります。
Dim DblID As Double '変数DblIDを定義
DblID = Shell("notepad.exe", vbNormalFocus) '元のサイズと位置でメモ帳を起動する
Range("A1").CurrentRegion.Copy '空白のセルで囲まれた範囲をコピーする
AppActivate DblID 'メモ帳をアクティブにする
SendKeys "^v", True 'コピーしたセルをメモ帳に貼り付ける
SendKeys "%fa", True '名前を付けて保存のダイアログ画面を表示する
Call Sleep(1000) '1秒だけ処理を休止する
SendKeys ThisWorkbook.Path & "\Memo.txt", True 'ファイル名をフルパスで指定する
SendKeys "%s" 'ファイルを保存する
引用元:
<< http://www.excel-vba.net/excel-function-018.html >>
> SendKeys ThisWorkbook.Path & "\Memo.txt", True
この部分ですが、名前を付けて保存のダイアログ画面のファイル名の欄に
フルパスを入力していますが、パスが一部欠けて入力されてしまうため、
エラーとなってしまいます。
ちゃんと入力されて保存まで完了することもあります。
毎回正常に動作させるためには、どのように工夫すればよろしいのでしょうか?
ご教授いただけると幸いです。
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
略
SendKeys "%fa", True '名前を付けて保存のダイアログ画面を表示する
Call Sleep(500) '0.5秒だけ処理を休止する
SendKeys ThisWorkbook.Path & "\Memo.txt", True 'ファイル名をフルパスで指定する
Call Sleep(500) '0.5秒だけ処理を休止する
SendKeys "%s" 'ファイルを保存する
こうっすかね。バッファかな?メモリかな?ってところですが正確には原因は特定できませんでした。
自身で1秒処理を止めている辺り気付いているんでしょうけど、一番のボトルネックになっているのは視覚効果かと推測。
ttp://www.yakushima-tonbo.com/windows/Windows7/Windows7_reiryo_2.htm
Windows8や10は知らんですが、似たようなオプションがあるので切るという手を試してみてください。
上記よりもうちょい確実に、と考えるなら数回に分けるのが無難かと思います。
・SendKeysで半角スペースをファイル名欄に送る、またはDELかBSを送ってデフォルトの「*.txt」を消させる
・SendKeysで本来のパスを送る
(フルパスの先頭が空白だったら無視されるのでそのまま保存できる)
これだと1回目のSendKeysでコケても問題は出ないと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Excelのマクロコードについて教えてください。 1 2022/03/27 13:25
- Excel(エクセル) ExcelVBA メモ帳を起動し名前を付けて指定フォルダに保存 2 2022/04/18 13:15
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- Visual Basic(VBA) VBA 参照先で選んだファイルをコピーし、出力先に別名で保存したい 8 2022/05/13 20:37
- Visual Basic(VBA) 【前回の続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/16 16:44
- Excel(エクセル) EXCELのグラフを画像(JPG形式)で保存、通常実行がうまく行かない。ステップインはうまく行く 3 2022/08/30 12:06
- Visual Basic(VBA) 【VBA】Excelの特定範囲のセルを画像で保存したい 2 2023/01/25 13:06
- Excel(エクセル) エクセルVBA、間違っているコード内容を正して頂けませんか? エクセルワークシートに納品書を作ったの 2 2023/08/02 21:13
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
- Visual Basic(VBA) 【ご教示ください】VBAの記述方法がわかりません。 2 2022/08/12 21:28
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
バッチファイル 二つ上のディ...
-
VBAでファイル名の取得方法
-
xcopyコマンドの進行状況を表示...
-
エクセルvbaでdocuworksprinter...
-
ExcelVBAの使い方 ¥の使い方...
-
【VBA】複数のtxtファイルから...
-
リストボックスにファイル名の...
-
outlook開けない
-
C++でネットワークパスのファイ...
-
エクセルマクロでファイル名の...
-
VBA★PDFをPDFアプリで印刷し...
-
エクセルのマクロで特定フォル...
-
Excel 相対パス
-
エクセルのファイルオープン時...
-
ファイルのアクセス回数について
-
バッチファイルが保存されてい...
-
エクセルのプロパティーでセキ...
-
マインクラフトPCをプレイしよ...
-
VBA 最新のフォルダ取得
-
マクロVBAのフォルダ階層別で検...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルvbaでdocuworksprinter...
-
バッチファイル 二つ上のディ...
-
VBAでパワーシェルを実行したい...
-
VBA一覧取得 再投稿
-
【VB.NET】App.configにファイ...
-
エクセルVBAで一つ上の階層...
-
初心者powershellのPS1ファイル...
-
ExcelVBAの使い方 ¥の使い方...
-
EXCEL(VBA)で指定フォルダ内の...
-
SaveAsの保存先について
-
Excel 相対パス
-
パスワード保護されたExcelファ...
-
【VBA】ExcelマクロでCSVファイ...
-
xcopyコマンドの進行状況を表示...
-
エクセルのマクロで特定フォル...
-
VBA★PDFをPDFアプリで印刷し...
-
VBS パスに変数を入れたい
-
コマンドプロンプトのコピー関...
-
【VBA】複数のtxtファイルから...
-
開いているファイルを削除し、...
おすすめ情報