Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


8372 / 13644 ツリー ←次へ | 前へ→

【33580】開いているブック名を取得したい ch 06/1/16(月) 10:36 質問[未読]
【33583】Re:開いているブック名を取得したい Blue 06/1/16(月) 11:01 回答[未読]
【33709】Re:開いているブック名を取得したい ch 06/1/18(水) 17:48 質問[未読]
【33710】Re:開いているブック名を取得したい ぱっせんじゃー 06/1/18(水) 17:59 発言[未読]
【33712】Re:開いているブック名を取得したい Blue 06/1/18(水) 18:07 回答[未読]
【33714】Re:開いているブック名を取得したい ch 06/1/18(水) 18:18 お礼[未読]

【33580】開いているブック名を取得したい
質問  ch  - 06/1/16(月) 10:36 -

引用なし
パスワード
   例えば、"keisan.xls"と"test060116.xls"を開いているとします。
keisan.xls で様々な処理をしたあとに
test060116.xls に値を貼り付けたりしたいのですが
test060116の数字は、コロコロ変わって、特定できません。
なので、自動でファイル名を取得できたら
それを変数にいてて、ファイルを読み出せるような気がしますが
なにか対策ありますか?

【33583】Re:開いているブック名を取得したい
回答  Blue  - 06/1/16(月) 11:01 -

引用なし
パスワード
   2つのBookしか開かないのであれば、

Dim wb As Workbook
Dim s As String

' 全ての開いているブックを調べて
' keisan.xlsでない1つ目のブック名を取得する
For Each wb In Application.Workbooks
  s = wb.Name
  If s <> "keisan.xls" Then
    Exit For
  End If
Next

MsgBox s

として、取得できそうです。

【33709】Re:開いているブック名を取得したい
質問  ch  - 06/1/18(水) 17:48 -

引用なし
パスワード
   ▼Blue さん:
>2つのBookしか開かないのであれば、
3つBookを開いていて
一つは マクロのbookでA=thisworkbook.nameで名前が取得できますが
あとは、処理するファイルでB=Activeworkbook.Nameで取得し
あとひとつのbook名はどのように取得したらよろしいのでしょうか?

【33710】Re:開いているブック名を取得したい
発言  ぱっせんじゃー  - 06/1/18(水) 17:59 -

引用なし
パスワード
   Blueさんのコードをお借りしました。

Sub nameget()
Dim wb As Workbook
Dim s As String
 For Each wb In Application.Workbooks
  s = wb.Name
  Select Case s
  Case ThisWorkbook.Name
   MsgBox "マクロ記載ブック:" & s
  Case ActiveWorkbook.Name
   MsgBox "アクティブブック:" & s
  Case Else
   MsgBox "その他のブック:" & s
  End Select
 Next
End Sub

【33712】Re:開いているブック名を取得したい
回答  Blue  - 06/1/18(水) 18:07 -

引用なし
パスワード
   >一つは マクロのbookでA=thisworkbook.nameで名前が取得できますが
>あとは、処理するファイルでB=Activeworkbook.Nameで取得し
>あとひとつのbook名はどのように取得したらよろしいのでしょうか?
A=B という可能性もあるのでは?

> test060116の数字は、コロコロ変わって、特定できません。
testという文字列が頭つくのであれば、Like演算子で

Dim wb As Workbook
Dim s As String

For Each wb In Application.Workbooks
  If wb.Name Like "test*" Then
    s = wb.Name
    Exit For
  End If
Next

If s <> "" Then
  MsgBox s
End If

のようなことはできます。
(Likeをきちんと調べれば、もう少し絞り込んで比較できます。)

【33714】Re:開いているブック名を取得したい
お礼  ch  - 06/1/18(水) 18:18 -

引用なし
パスワード
   ▼Blue さん:
ありがとうございました。

8372 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free