
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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルvbaでdocuworksprinter...
-
エクセルのマクロで特定フォル...
-
パスワード保護されたExcelファ...
-
開いているファイルを削除し、...
-
指定したフォルダ内の最新ファ...
-
エクセルのファイルオープン時...
-
エクセルVBAで一つ上の階層...
-
xcopyコマンドの進行状況を表示...
-
Windowsファイルパスの妥当性に...
-
コマンドプロンプトのコピー関...
-
EXCEL(VBA)で指定フォルダ内の...
-
【VB.NET】App.configにファイ...
-
Access VBA で txt文をデスクト...
-
VS2012での\\(円マーク)とバッ...
-
C++でネットワークパスのファイ...
-
【VBA】ExcelマクロでCSVファイ...
-
【VBA】複数のtxtファイルから...
-
outlook開けない
-
エクセルの二重起動をやめたい
-
android Javaの画像表示について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルvbaでdocuworksprinter...
-
エクセルVBAで一つ上の階層...
-
Excel 相対パス
-
xcopyコマンドの進行状況を表示...
-
コマンドプロンプトのコピー関...
-
【VB.NET】App.configにファイ...
-
実行ファイルのパスを取得したい
-
エクセルのマクロで特定フォル...
-
【VBA】ExcelマクロでCSVファイ...
-
開いているファイルを削除し、...
-
VBA★PDFをPDFアプリで印刷し...
-
Excel2010VBAでエラーが出る相...
-
fopenでのパス指定
-
ExcelVBAの使い方 ¥の使い方...
-
【VBA】複数のtxtファイルから...
-
初心者powershellのPS1ファイル...
-
VBAでパワーシェルを実行したい...
-
EXCEL(VBA)で指定フォルダ内の...
-
VBAでの共有パスにつきまして
-
ExcelのVBAで上書き保存を確...
おすすめ情報