Excel VBA質問箱 IV

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

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


1131 / 13645 ツリー ←次へ | 前へ→

【76112】フォルダー内の複数のエクセルあるセルの内容を表示させたい ペンネーム船長 14/9/28(日) 15:06 質問[未読]
【76113】Re:フォルダー内の複数のエクセルあるセル... kanabun 14/9/28(日) 16:54 発言[未読]
【76114】Re:フォルダー内の複数のエクセルあるセル... kanabun 14/9/28(日) 18:36 発言[未読]
【76115】Re:フォルダー内の複数のエクセルあるセル... kanabun 14/9/28(日) 18:41 発言[未読]
【76143】Re:フォルダー内の複数のエクセルあるセル... ペンネーム船長 14/10/4(土) 16:02 質問[未読]
【76144】Re:フォルダー内の複数のエクセルあるセル... kanabun 14/10/4(土) 16:59 発言[未読]
【76150】Re:フォルダー内の複数のエクセルあるセル... ペンネーム船長 14/10/4(土) 22:34 お礼[未読]

【76112】フォルダー内の複数のエクセルあるセルの...
質問  ペンネーム船長  - 14/9/28(日) 15:06 -

引用なし
パスワード
   【質問】
デスクトップの『test』フォルダーの中に複数のエクセルがあり、そのエクセルには全て『あ』シートがあります。それらエクセルのシート『あ』のRange(”D4”)に書いてある内容を順次表示させたい。

下記のコードでは上手く行きません。ご教授お願いします。

Private Sub CommandButton1_Click()
Dim FolderName As String
Dim FSO As Object, F As Object
   FolderName = "C:\Users\○●\Desktop\test"
   Set FSO = CreateObject("Scripting.FileSystemObject")
   For Each F In FSO.GetFolder(FolderName).Files
     MsgBox F.Worksheets("あ").Cells(4, 4).Value  'NG
   Next
End Sub

【76113】Re:フォルダー内の複数のエクセルあるセ...
発言  kanabun  - 14/9/28(日) 16:54 -

引用なし
パスワード
   ▼ペンネーム船長 さん:

>   For Each F In FSO.GetFolder(FolderName).Files
>     MsgBox F.Worksheets("あ").Cells(4, 4).Value  'NG
>   Next

Worksheetsプロパティは Bookのプロパティです。
そのファイルF をExcelで開いてWorkbookとして扱わないと使えません。

代わりに、
 ブックを開かないで読む

ってのはどうでしょう?

ht tp://officetanaka.net/excel/vba/tips/tips28.htm

【76114】Re:フォルダー内の複数のエクセルあるセ...
発言  kanabun  - 14/9/28(日) 18:36 -

引用なし
パスワード
   別法で、
もっと簡単に、セルに外部参照式を書いておいてもいいですね。

他のブックのセル範囲への外部参照
ht tp://office.microsoft.com/ja-jp/excel-help/HP010102338.aspx

【76115】Re:フォルダー内の複数のエクセルあるセ...
発言  kanabun  - 14/9/28(日) 18:41 -

引用なし
パスワード
   外部参照式のサンプルで こんなアーカイブがありました。

ht tp://web.archive.org/web/20080206002249/ht tp://www2.moug.net/bbs/exvba/2008013100022.htm

(↑ ht と tp のスペースをとるとURLになります)

そこの
> Sub Try3()
を参照ください。

【76143】Re:フォルダー内の複数のエクセルあるセ...
質問  ペンネーム船長  - 14/10/4(土) 16:02 -

引用なし
パスワード
   下記のコードで動くのですが、シート名をWorksheet(”あ”)と記述すると
エラーになります。どのような記述が正しいのですか。

Private Sub CommandButton1_Click()
  Dim i As Long, buf As String, Target As String
  Const Path = "C:\Users\○●\Desktop\test\"
  buf = Dir(Path & "*.xls")
  Do While buf <> ""
    Target = "'" & Path & "[" & buf & "]Sheet1'!R4C4"
    i = i + 1
    MsgBox ExecuteExcel4Macro(Target)
    buf = Dir()
  Loop
End Sub

【76144】Re:フォルダー内の複数のエクセルあるセ...
発言  kanabun  - 14/10/4(土) 16:59 -

引用なし
パスワード
   ▼ペンネーム船長 さん:

>下記のコードで動くのですが、シート名をWorksheet(”あ”)と記述すると
>エラーになります。どのような記述が正しいのですか。
>

>    Target = "'" & Path & "[" & buf & "]Sheet1'!R4C4"

ここをどのように書いたのですか?

    Target = "'" & Path & "[" & buf & "]あ'!R4C4"

は、やってみましたか?

【76150】Re:フォルダー内の複数のエクセルあるセ...
お礼  ペンネーム船長  - 14/10/4(土) 22:34 -

引用なし
パスワード
   kanabunさま
Sheets(”あ”)やSheet(”あ”)やSheet(あ)・・・など10位試して
みたのですが、正解はkanabunnさんのご指摘通り『あ』ということですね。
引用コードをもっと、慎重に見るべきでした。
お陰様でやりたい事が実現出来ました。
有難う御座いました。

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