Excel VBA質問箱 IV

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

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


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

【8839】リストをもとにファイルを開きたいのですが・・・ 猛虎襲来 03/11/5(水) 22:01 質問
【8841】Re:リストをもとにファイルを開きたいのです... つん 03/11/5(水) 22:42 回答
【8845】できました!!ありがとうございます 猛虎襲来 03/11/5(水) 23:46 お礼
【8847】Re:できました!!ありがとうございます つん 03/11/6(木) 0:09 発言

【8839】リストをもとにファイルを開きたいのです...
質問  猛虎襲来 E-MAIL  - 03/11/5(水) 22:01 -

引用なし
パスワード
   エクセルファイルの”一覧表”というシートのA2:A17に、開きたいファイルの一覧があります。
(開きたいファイルは)”list”というフォルダの中にあります。
それを読みとって自動的にファイルを開きたいので、以下のように作ってみたのですが、一つ(A2に名前のあるファイル)だけ開いて終了してしまいます。
どこが悪いのか、教えていただけたら、と思います。

Sub リストをもとに開く()
  ChDir "d:\集計\List"
  Sheets("一覧表").Select
  Dim namae As String
    For i = 2 To 15
    namae = Cells(i, 1)
    If namae = "" Then
    Exit Sub
    Else
    Workbooks.Open FileName:=namae & ".xls"
    End If
    Next i
End Sub

【8841】Re:リストをもとにファイルを開きたいので...
回答  つん E-MAIL  - 03/11/5(水) 22:42 -

引用なし
パスワード
   猛虎襲来 さん、こんばんは

A2のブックを開いたところで、
A2のブックがアクティブになってしまいます。
なので、

>Sub リストをもとに開く()
>  ChDir "d:\集計\List"
>  Sheets("一覧表").Select
>  Dim namae As String
>    For i = 2 To 15
    ↓の書き方では、A2のブックのセルを参照してしまうことが原因です。
>    namae = Cells(i, 1)
     ThisWorkbook.Worksheets("Sheet1").Cells(i, 1).Value
     このように、ちゃんとブックから参照してやらないとダメです。
     ブックから参照するようにすると、
     「Sheets("一覧表").Select」は必要なくなります。
>    If namae = "" Then
>    Exit Sub
>    Else
>    Workbooks.Open FileName:=namae & ".xls"
     ↑ここも、「ChDir "d:\集計\List"」としないで、
     ちゃんとフルパスでファイル名を入れた方がいいような気がします。
>    End If
>    Next i
>End Sub

どーかな?

【8845】できました!!ありがとうございます
お礼  猛虎襲来 E-MAIL  - 03/11/5(水) 23:46 -

引用なし
パスワード
   ▼つん さん:
一発ですっきりできました。
1週間悩んだ甲斐がありました。
ありがとうございました。
ところで、

> ThisWorkbook.Worksheets("Sheet1").Cells(i, 1).Value

という部分の一番最後の .Value にはどんな意味(働き)があるのでしょうか?
勉強不足ですみません。今後のためにぜひ知りたいのですが…
お手数ですが、お願いします。

【8847】Re:できました!!ありがとうございます
発言  つん E-MAIL  - 03/11/6(木) 0:09 -

引用なし
パスワード
   猛虎襲来 さん

>一発ですっきりできました。
>1週間悩んだ甲斐がありました。
>ありがとうございました。

お疲れさまでした。
解決したようで良かったです。

>という部分の一番最後の .Value にはどんな意味(働き)があるのでしょうか?
>勉強不足ですみません。今後のためにぜひ知りたいのですが…
>お手数ですが、お願いします。

「値」っちゅーことですね。
Cell(1,1).Value …… セルA1に入力されている値。
TextBox1.Value …… テキストボックスに入力されている値。

一度ヘルプを読んで見てくださいね。

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