Excel2003を使用しています。
メールに添付されてくるExcelファイル(A)のデータを印刷するために、レイアウト等を整えたファイル(B)に値のみコピーというマクロをファイル(B)に作成したいと思っています。
この作業は、ファイル(A)とファイル(B)を並べて作業しますが、毎回メールに添付されてくるファイル(A)の名前が一定ではなく、ファイル名に日付が入っています。『2.07○○○.xls』のような感じですので、ファイル(B)にコードを記述するときに、Excelで開いているもう1つのファイルといったような指定の仕方は可能でしょうか?
やはり、きちんと決まったファイル名でないと不可能であれば、添付されてきたファイルを、ある名前で一旦どこかに保存して…と考えていますが、もし、上記のような指定方法ができるのであれば、教えていただきたいと思い、質問させていただきました。
No.1
- 回答日時:
ワイルドカードで指定するのはだめですか。
『*』ですべてのファイル、『*.xls』ですべての.xlsファイル、『2.07???.xls』で2.07の後3文字の.xlsファイル、『2.07*.xls』で2.07の後任意の文字数の.xlsファイル
が指定できるとおもいますが・・・。
回答ありがとうございます。
ワイルドカードで指定する場合は、ファイル(A)が保存されているフォルダの指定等も必要になってくるのでしょうか?
メールに添付されて送られてくるファイル名は、ある程度の規則性がありそうなので、教えていただいた方法でも試してみたいと思い、ヘルプや参考書を見てみたものの、実際にはどのように記述すればいいのかイマイチ理解できなくて…。
No.3
- 回答日時:
マクロの起動方法によりますが、
ActiveWorkbookとThisWorkbookを利用してみては?
(A)をアクティブにし、(B)のマクロを起動する。
キーボードのショートカットからならできるはずです。
回答ありがとうございます。
>ActiveWorkbookとThisWorkbookを利用してみては?
>(A)をアクティブにし、(B)のマクロを起動する。
なるほど、ファイル(A)から(B)のマクロを実行するわけですね。
この方法で、コードを書いてみたところ、うまくいきました。
ありがとうございました。
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.5
- 回答日時:
ファイル(B)のどこかのセルにファイル(A)のブック名を入力して
マクロで使えばいいだけでは?
日付が昨日の日付限定なら
BOOKA = Format(Date-1,"m.dd") & "FILE_A.XLS"
とする手もありますし
回答ありがとうございます。
>ファイル(B)のどこかのセルにファイル(A)のブック名を入力して
最終手段として、↑の方法で…と思っていました。
日付も規則性はないのですが、昨日の日付など限定されるようならば、教えていただいたような方法もあるのですね。勉強になりました。
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.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.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 は、画面上には出ていないのですが。。。
お探しの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も見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
エクセルマクロで不特定なファイル名を使用するには
Excel(エクセル)
-
ファイル名を指定しないVBAは?
その他(パソコン・スマホ・電化製品)
-
VBAでファイルを開くときにファイル名でワイルドカードを使用したいです
その他(プログラミング・Web制作)
-
-
4
名前の変わるブックをアクティブにしたい。
Excel(エクセル)
-
5
エクセルマクロ 異なるファイル名でも実行してくれるマクロ
Excel(エクセル)
-
6
【Excel】 VBAを使って毎回名前が変わるファイルを添付してメール送信したい。
Excel(エクセル)
-
7
ファイル名変更後も、マクロを動作させたいのですが?
Access(アクセス)
-
8
マクロを使って不特定のファイルからコピー&ペーストしたい(エクセル)
Excel(エクセル)
-
9
ExcelVBAでBookを開く時にファイル名の一部だけを指定で
Access(アクセス)
-
10
エクセルVBAでセルに入力したパスでブックを開く
Excel(エクセル)
-
11
EXCEL VBA 指定したファイルが存在しない場合メッセージボックスを表示させる
Access(アクセス)
-
12
Excel VBAで同じフォルダ内のファイルを開くには?
Excel(エクセル)
-
13
日付を入力したセルをファイル名にして保存するには
Excel(エクセル)
-
14
Excelマクロ ファイル名が変わるとエラーになる
Excel(エクセル)
-
15
vba初心者です。 質問です。 毎回ファイル名が変わるファイルを開きたいです。 open filen
その他(IT・Webサービス)
-
16
エクセルVBA:毎月名前が変わるエクセルファイルを毎月異なるフォルダから開く
その他(コンピューター・テクノロジー)
-
17
エクセル マクロ名にブック名が付いた場合の修正方法
Excel(エクセル)
-
18
VBA、ファイル名検索から開く、部分一致
Visual Basic(VBA)
-
19
worksheetFunctionクラスのVlookupプロパティを取得できません エラーへの対応
Visual Basic(VBA)
-
20
excelで入力の最終行に移動するには
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【マクロ】読取専用のファイル...
-
VBAでワークブックの名前を変数...
-
エクセルマクロで不特定なファ...
-
ファイルを開かずにマクロを実行
-
エクセルのシートの数を数えた...
-
VBA EXCELファイル選択⇒指定セ...
-
EXCEL VBA 指定したファイルが...
-
複数のexcelファイルを一つにす...
-
【Excel VBA】ファイル名が一...
-
vlookup関数の引数を変数で指定...
-
フォルダ内のブック全部にパス...
-
ISOファイルとMDSファイル
-
ccdファイルはどのようにして使...
-
差し込み印刷の元データファイ...
-
ACCESSでデータ読み取り専用を...
-
イーファンビューでwebpファイ...
-
非サポートファイルとは…???
-
OneDriveはどちらが「主」でし...
-
gccを行ってもexeファイルが生...
-
access テキストボックスの値取得
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
EXCEL VBA 指定したファイルが...
-
エクセルマクロで不特定なファ...
-
VBAでワークブックの名前を変数...
-
フォルダ内のexcelファイルを順...
-
エクセルのxls形式からxlsx形式...
-
エクセル 複数ファイルの一括...
-
エクセルのシートの数を数えた...
-
accessフォルダを移動したらフ...
-
vlookup関数の引数を変数で指定...
-
Accessのaccdbファイルを起動で...
-
ファイルを開かずにマクロを実行
-
【Excel VBA】ファイル名が一...
-
EXCELマクロを無効にして開く方法
-
エクセル(マクロ)のファイル...
-
ACCESS VBAでファイルを開くダ...
-
Excel VBA でファイルが開かれ...
-
ファイルの保存場所を変えたら...
-
vba初心者です。 質問です。 毎...
-
フォルダ内のブック全部にパス...
-
エクセルマクロ 異なるファイ...
おすすめ情報