
Excel2003を使用しています。
メールに添付されてくるExcelファイル(A)のデータを印刷するために、レイアウト等を整えたファイル(B)に値のみコピーというマクロをファイル(B)に作成したいと思っています。
この作業は、ファイル(A)とファイル(B)を並べて作業しますが、毎回メールに添付されてくるファイル(A)の名前が一定ではなく、ファイル名に日付が入っています。『2.07○○○.xls』のような感じですので、ファイル(B)にコードを記述するときに、Excelで開いているもう1つのファイルといったような指定の仕方は可能でしょうか?
やはり、きちんと決まったファイル名でないと不可能であれば、添付されてきたファイルを、ある名前で一旦どこかに保存して…と考えていますが、もし、上記のような指定方法ができるのであれば、教えていただきたいと思い、質問させていただきました。
No.4ベストアンサー
- 回答日時:
こんにちは。
オープンしているブックが
ファイル(A)
ファイル(B)
の2つなら、例えば Workbooks(Index) でとるとか。
Sub SampleProc()
Dim wb As Workbook
Dim i As Long
If Workbooks.Count <> 2 Then Exit Sub
For i = 1 To 2
Set wb = Workbooks(i)
If Not wb Is ThisWorkbook Then
Exit For
End If
Next
MsgBox wb.Name
End Sub
KenKen_SP さん、こんにちは。
いつもお世話になっております。
いろんな方法があるのですね。勉強になります。
記載していただいたサンプルコードを試してみました。
…が、何も起こりませんでした(^_^;)
てっきり、ThisWorkbook ではないファイル名が表示されると思っていたのですが、なぜなんでしょう??
No.8
- 回答日時:
> メールの添付ファイル欄から直接開いた状態では、参照できていない
> のでしょうか…?
当方では問題なく、ThisWorkbook 以外のブック名が表示されますが...
調べるなら、
Dim wb As Workbook
For Each wb in Workbooks
MsgBox wb.Name
Next
などとして、Workbooks コレクションを回して目的のブック名が表示される
かチェックして下さい。
これで表示されないのであれば、別プロセスの Excel.exe 上のブックである
可能性が高いので、開き方についても再検討が必要です。
ちなみに、*.xls ファイルを DBL クリックして開いた場合、都度新規 Excel
が立ち上がるような設定にしてます?
# たまに居ますので。。こういう設定にしている人
KenKen_SP さん、こんにちは。
お礼が遅くなり申し訳ありません。
アドバイスいただいたように、Workbooks コレクションを回してチェックしたところ、目的のブック名は表示されたのですが、『PERSONAL.XLS』も表示されました…。
ということは、前回と同じ状況でチェックしましたので、ファイル(A)とファイル(B)の2つしか開いていないと思っていたのは、間違いだったということですよね?(^_^;)
PERSONAL.XLS は、画面上には出ていないのですが。。。
No.7
- 回答日時:
#4 お礼欄について
前提として、ファイル(A)、ファイル(B)の2つのみを開いた状態で
コードを実行するものとしています。したがって、
> If Workbooks.Count <> 2 Then Exit Sub
ブックが1つ、あるいは3つ以上開いた状態ではここで終了します。
また、
> Set wb = Workbooks(i)
Workbooks(Index) で参照できるのは、同一プロセスにあるブックのみ
です。つまり、VBA を実行している Excel.exe とは別の Excel.exe で
開かれているブックは参照できません。
上記以外に、
> …が、何も起こりませんでした(^_^;)
という可能性は考えにくいのですが....
KenKen_SP さん、こんにちは。
再度の回答ありがとうございます。
>前提として、ファイル(A)、ファイル(B)の2つのみを開いた状態で
コードを実行するものとしています。
これは、コードの内容でわかりましたので、確認しました。
2つのみ開いた状態でマクロを実行しました。
>Workbooks(Index) で参照できるのは、同一プロセスにあるブックのみ
です。つまり、VBA を実行している Excel.exe とは別の Excel.exe で
開かれているブックは参照できません。
ファイル(A)のほうは、メールに添付されてきたExcelファイルなのですが、メールの添付ファイル欄から直接開いた状態では、参照できていないのでしょうか…?
上記のアドバイスをいただいて、このへんに問題があったのかなと思ったのですが、いかがでしょうか?
No.6
- 回答日時:
vbのヘルプで
Dir
を参照してみてください。
' 指定した拡張子を持つファイル名を返します。複数の *.INI ファイル
' が存在すると、最初に見つかったファイル名を返します。
MyFile = Dir("C:\WINDOWS\*.INI")
' 引数を指定せずに再度 Dir 関数を呼び出すと、
' 同じフォルダにある次の *.INIファイルを返します。
MyFile = Dir
基本的には上記です。
MyFile = Dir("D:\MyData\207*.xls")
MyFile = Dir("D:\MyData\207????.xls")
というような。
こういうことではなかったかな。
再度の回答ありがとうございます。
ワイルドカードで指定するほうのファイルがメールに添付されているファイルなので、その添付ファイルが保存されているフォルダを指定してやれば、教えていただいた方法でできるのでしょうね。
丁寧に説明していただいて助かりました。
ありがとうございました。
No.5
- 回答日時:
ファイル(B)のどこかのセルにファイル(A)のブック名を入力して
マクロで使えばいいだけでは?
日付が昨日の日付限定なら
BOOKA = Format(Date-1,"m.dd") & "FILE_A.XLS"
とする手もありますし
回答ありがとうございます。
>ファイル(B)のどこかのセルにファイル(A)のブック名を入力して
最終手段として、↑の方法で…と思っていました。
日付も規則性はないのですが、昨日の日付など限定されるようならば、教えていただいたような方法もあるのですね。勉強になりました。
No.3
- 回答日時:
マクロの起動方法によりますが、
ActiveWorkbookとThisWorkbookを利用してみては?
(A)をアクティブにし、(B)のマクロを起動する。
キーボードのショートカットからならできるはずです。
回答ありがとうございます。
>ActiveWorkbookとThisWorkbookを利用してみては?
>(A)をアクティブにし、(B)のマクロを起動する。
なるほど、ファイル(A)から(B)のマクロを実行するわけですね。
この方法で、コードを書いてみたところ、うまくいきました。
ありがとうございました。
No.1
- 回答日時:
ワイルドカードで指定するのはだめですか。
『*』ですべてのファイル、『*.xls』ですべての.xlsファイル、『2.07???.xls』で2.07の後3文字の.xlsファイル、『2.07*.xls』で2.07の後任意の文字数の.xlsファイル
が指定できるとおもいますが・・・。
回答ありがとうございます。
ワイルドカードで指定する場合は、ファイル(A)が保存されているフォルダの指定等も必要になってくるのでしょうか?
メールに添付されて送られてくるファイル名は、ある程度の規則性がありそうなので、教えていただいた方法でも試してみたいと思い、ヘルプや参考書を見てみたものの、実際にはどのように記述すればいいのかイマイチ理解できなくて…。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Excelのマクロコードについて教えてください。 1 2022/03/27 13:25
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2022/03/28 14:52
- Visual Basic(VBA) エクセルのマクロを使ってメールを送る方法について教えてください 2 2022/03/29 01:36
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2023/02/21 13:29
- Visual Basic(VBA) Excelのマクロについて教えてください。 作業フォルダ内に2つのファイルがあります。 このファイル 2 2023/07/09 13:40
- Excel(エクセル) Excel VBAどこが間違ってますか? 4 2023/07/17 10:04
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/07/03 09:11
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/03 11:27
- Excel(エクセル) Excel、同じフォルダ内のExcelファイルの特定シートのみを1つのファイルに集約したい 8 2022/09/07 15:12
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/21 09:28
このQ&Aを見た人はこんなQ&Aも見ています
-
エクセルマクロで不特定なファイル名を使用するには
Excel(エクセル)
-
ファイル名を指定しないVBAは?
その他(パソコン・スマホ・電化製品)
-
名前の変わるブックをアクティブにしたい。
Excel(エクセル)
-
-
4
Excelマクロ ファイル名が変わるとエラーになる
Excel(エクセル)
-
5
VBAでファイルを開くときにファイル名でワイルドカードを使用したいです
その他(プログラミング・Web制作)
-
6
ExcelVBAでBookを開く時にファイル名の一部だけを指定で
Access(アクセス)
-
7
EXCELマクロで、開いてはいるがアクティブでないファイルをアクティブにする方法?
Excel(エクセル)
-
8
エクセルVBA:毎月名前が変わるエクセルファイルを毎月異なるフォルダから開く
その他(コンピューター・テクノロジー)
-
9
【Excel】 VBAを使って毎回名前が変わるファイルを添付してメール送信したい。
Excel(エクセル)
-
10
エクセルマクロ 異なるファイル名でも実行してくれるマクロ
Excel(エクセル)
-
11
エクセルVBAでセルに入力したパスでブックを開く
Excel(エクセル)
-
12
【マクロ】毎回、ファイル名が変わるファイルへの 文字列の転記
Excel(エクセル)
-
13
Excel VBAで同じフォルダ内のファイルを開くには?
Excel(エクセル)
-
14
ファイル名変更後も、マクロを動作させたいのですが?
Access(アクセス)
-
15
マクロについて教えてください。 ファイル名を変更すると、デバックエラー
Word(ワード)
-
16
EXCEL VBA 指定したファイルが存在しない場合メッセージボックスを表示させる
Access(アクセス)
-
17
vba初心者です。 質問です。 毎回ファイル名が変わるファイルを開きたいです。 open filen
その他(IT・Webサービス)
-
18
VBAのオートフィルターで該当行がない場合に処理を止めたい
Excel(エクセル)
-
19
別ブックをダイアログボックスで指定してそこにあるシートをコピーしたい
Excel(エクセル)
-
20
excel VBA 2つのシートの特定の列を比較して同じ値のセルがあったらその行を上書きしたい
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【マクロ】変数に入れるコード...
-
エクセル 複数ファイルの一括...
-
エクセルマクロで不特定なファ...
-
【マクロ】EXCELで読込したCSV...
-
EXCEL VBA 指定したファイルが...
-
VBA リストボックスの連動方法...
-
エクセル 画像リンク
-
エクセルVBA 上書き保存禁止と...
-
EXCEL VBA 親ディレクトリの...
-
VBAでワークブックの名前を変数...
-
エクセルファイルを開く時、関...
-
【VBA】フォルダ内のファイル全...
-
Excelファイルがマクロを含むか...
-
ISOファイルとMDSファイル
-
CD-RWで焼いたHTMLデ...
-
ccdファイルはどのようにして使...
-
差し込み印刷の元データファイ...
-
エクセルの循環参照、?
-
ExcelのVBAでWordを読み取り専...
-
【関数】同じ関数なのに、エラ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【マクロ】EXCELで読込したCSV...
-
EXCEL VBA 指定したファイルが...
-
【マクロ】名前を保存する際に...
-
フォルダ内のexcelファイルを順...
-
エクセルマクロで不特定なファ...
-
【Excel VBA】ファイル名が一...
-
ファイルを開かずにマクロを実行
-
フォルダ内のブック全部にパス...
-
EXCELマクロを無効にして開く方法
-
エクセル 複数ファイルの一括...
-
エクセル(マクロ)のファイル...
-
accessフォルダを移動したらフ...
-
秀丸:あらかじめ設定した複数...
-
データ参照先が別ファイルの場...
-
エクセルファイルを開く時、関...
-
Excelファイルがマクロを含むか...
-
ファイルの保存場所を変えたら...
-
エクセルのシートの数を数えた...
-
VBAでワークブックの名前を変数...
-
Excelのマクロでファイルを開く...
おすすめ情報