エクセルマクロでファイルオープンでシートカットが使えない
エクセルのVBAマクロについて教えて下さい。
”Application.GetSaveAsFilename”にてファイルを指定して、”Workbooks.OpenText Filename”にてファイルをオープンするときに、”Application.GetSaveAsFilename”にて指定したファイルがシートカットの時にエラーで停止する。
もし、”Application.GetSaveAsFilename”が実際のファイルの場合には、エラーで停止しない。
■実際のVBA
aFile = Application.GetSaveAsFilename(InitialFileName:=TaskF & "\" & "*.xls", FileFilter:="Excel(xls)ファイル (*.xls),*.xls")
Workbooks.OpenText Filename:=aFile ←左記の箇所でエラー停止する。
No.3
- 回答日時:
「シートカット」→「ショートカット(*.lnk)」と読み替えます。
>エクセルマクロでファイルオープンでシートカットが使えない
何度読んでも、良く理解できない質問です。
*ロジックは間違いないけれども、こういうようには書きませんね。
↓
>”Application.GetSaveAsFilename”にてファイルを指定して、 *
>”Workbooks.OpenText Filename”にてファイルをオープンするときに、
>”Application.GetSaveAsFilename”にて指定したファイルがシートカットの時にエラーで停止する。
ショートカットをオープンするというのは、Workbooks.OpenText ではないはずですし、こういうロジックはマクロとしてはイレギュラーです。
>ファイルがシートカットの時にエラーで停止する。
ショートカットを作るという意味でしょうか。それなら、まったくコードが違います。
開けるときに、そのままなら、ショートカットなどを指定することは出来ないはずです。
>(1)マクロは、汎用性を持たせるためリンク指定、実ファイル指定のどちらでも実行させるようにしたい。
リンク指定なら、その拡張子で、切り替えるようにしなければなりません。
エラーそのものよりも、全体のロジックがどうなっているか、どういうことをしたいのか、フォルダは、ネットワーク(仮想)か、物理的フォルダなのか、まず、今までのコードは忘れて、どういう仕様でマクロを実行させたいのか、最初から構築したほうが早いような気がします。話を理解すれば、コードは作れますが、今のままで、切ったり貼ったりという方式では不可能だと思います。
それと、ファイルを開くことと、ファイルを閉じることとは、話が別です。
No.2
- 回答日時:
ANo.1です。
> ご指摘通りの変更をしましたが同じエラーで停止しています。
エラーの内容を提示してください。
また、ちゃんと動くコードがあるのでしたら、なぜそちらを使わないのですか?
mt2008様
No.1の方法で解決しました。
ありがとうございます。
本当に助かりました。
エラーメッセージを確認するために再度書き直して実行したら問題なく実行することが出来ました。
本当に本当にありがとうございます。
No.1ベストアンサー
- 回答日時:
今の設定だと、拡張子がxlsで無い場合、「.xls」を後ろに付けたファイル名が変数「aFile」に入ります。
ショートカットは、普段は見えないようになっていますが、拡張子は「.lnk」なので、保存ボタンを押した時、変数aFileに入るファイル名は「○○○.lnk.xls」になってしまいます。
GetSaveAsFilenameの所を以下の様に変更して見てください。
ショートカットの場合、本来のファイル名とパスが変数aFileに入るようになります。
aFile = Application.GetSaveAsFilename(InitialFileName:=TaskF & "\" & "*.xls")
回答ありがとうございます。
ご指摘通りの変更をしましたが同じエラーで停止しています。
追加で申し訳ありませんが下記の項目追加させてください。
(1)マクロは、汎用性を持たせるためリンク指定、実ファイル指定のどちらでも実行させるようにしたい。
(2)以前に同じようなマクロがあり、それは実ファイル、リンクファイルとも実行が出来た。
(作成された方が会社を変えられたため連絡が出来ません・・・知りません)
■実行が出来るマクロ
同じようなマクロですが下記の場合には、リンクでも実ファイルでも問題なく実行出来ます。。。
Dim aFile As Variant
Rem aFile = Application.GetOpenFilename _
("案件内容転記 (*.xls), *.xls", , , , True)
If IsArray(aFile) Then
For i = 1 To UBound(aFile)
Debug.Print i & ":", aFile(i)
Next i
Else
Debug.Print aFile
End If
Workbooks.OpenText Filename:=aFile(1)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) DisplayAlertsブロパティで ”実行時エラー424オブジェクトが必要です” 5 2022/05/15 18:02
- Excel(エクセル) Excel VBAどこが間違ってますか? 4 2023/07/17 10:04
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/03 11:27
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/03 12:30
- Visual Basic(VBA) エクセルVBA Workbook変数に変数を使ったファイル名を格納したい 5 2023/06/13 14:46
- Visual Basic(VBA) エクセルVBA 既存エクセルを開きその中のシートとしてCSVファイルを開く 3 2023/05/31 13:11
- Excel(エクセル) フォルダ内の全ブックのシート名を変更したい 7 2022/09/22 21:34
- Visual Basic(VBA) 集めたシートのシート名を変更したい。 下記のコードでサブフォルダにあるファイルのSheet3を集めて 6 2022/08/23 10:38
- Visual Basic(VBA) 動かなくなってしまった古いVBAを動くようにしたい 8 2022/09/20 13:57
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/03/08 09:08
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルVBAでセルに入力したパ...
-
EXCELのマクロを使って、テキス...
-
【マクロ】シート名を取得する...
-
エクセルを選択して開き印刷す...
-
ホームページビルダー7でHPっを...
-
EXCELのVBAで画像を選んだ順に...
-
Teraマクロで日付ディレクトリ...
-
excelに貼り付けた数値が勝手に...
-
CSVで文字化けしてしまうのを直...
-
エクセルファイルから指定した...
-
ローマ字→カタカナへ変換(エク...
-
コマンドボタンを押すたびに大...
-
Excel:コマンドボタンの移動
-
複数ファイルにある特定のシー...
-
エラーになってないのにVBA...
-
Excel VBA のdebug(F8キー) が...
-
EXCELのセルへ、デジタル時計を...
-
【Excel VBA】エラー番号400
-
Excelを開いた時に表示さ...
-
マクロ 実行ボタンを押さずに...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルVBAでセルに入力したパ...
-
excelに貼り付けた数値が勝手に...
-
EXCELのVBAで画像を選んだ順に...
-
Teraマクロで日付ディレクトリ...
-
ファイルを並び替えるときの「...
-
VLOOKUP関数とネットワークに置...
-
エクセル 一括リンクの解除
-
excel INDIRECT 他ファイル参照
-
エクセルファイルから指定した...
-
エディタで効率的な切り出し方法
-
PDF ファイルが開けません。
-
EXCELのマクロを使って、テキス...
-
ハイパーリンクで前回値をひき...
-
エクセルからスキャナVBAで連動...
-
EXCEL VBA ー 同一フォルダ内の...
-
CSVで文字化けしてしまうのを直...
-
エクセルマクロでファイルオー...
-
ミュージックファイルのファイ...
-
エクセルVBAでファイルを連...
-
エクセルVBA+ADOで特定のCSVフ...
おすすめ情報