Excel VBA質問箱 IV

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

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


12615 / 76734 ←次へ | 前へ→

【69636】Re:チェックボックスで集計とリストを立ち上げたいのですが。
回答  UO3  - 11/8/15(月) 14:02 -

引用なし
パスワード
   ▼LALA さん:

こんにちは。暑いですねぇ。

フォルダが、C:\過去のリスト
ファイル名が
CheckBox1用;1から5.csv
CheckBox2用;6から10.csv
CheckBox3用;11から15.csv
CheckBox4用;16から20.csv
CheckBox5用;21から25.csv
ですね。了解です。

>セルの中に、この名前をもう書いておいた方がいいんでしょうか?

もし、ファイル名が変更になる場合があるとすれば、
・VBAコードを変更する。
・セルの値を変更する。
といった方法になります(もちろん、そのほかのやりかたもありますが)
プログラムは、あまりさわりたくないということから後者で対応するケースが少なくないですね。
Worksheets("Sheet1")の B1:B5 に、これら5つのファイル名があるということにしましょう。

>チェックボックスのキャプションにCSVの名前が入っているのかな?
>↑
>これどういう意味ですか?

チェックボックスの □ の右側 ユーザーフォームにコントロールを追加すると たとえば
CheckBox1 といった文字列が表示されますね。これがキャプションです。
この文字列は任意のものにすることができますので、これをファイル名にしておいて
チェックボックスが選ばれたら、ファイル名を、このキャプションからもってくる方法も
あるということです。でも、B1:B5 からもってくることにしましたから、これは忘れてください。

>csv じゃなく xls では だめですか?

大丈夫ですよ。 B1:B5 の記入を ○○○.csv ではなく □□□.xls にしておけばOKです。
xlsとcsvが混在していてもいいです。

ということで、以下。

まず基本形。

Private Sub CommandButton1_Click()
  If CheckBox1.Value = True Then
    Workbooks.Open "C:\過去のリスト\" & ThisWorkbook.Worksheets("Sheet1").Range("B1").Value
  End If
  If CheckBox2.Value = True Then
    Workbooks.Open "C:\過去のリスト\" & ThisWorkbook.Worksheets("Sheet1").Range("B2").Value
  End If
  If CheckBox3.Value = True Then
    Workbooks.Open "C:\過去のリスト\" & ThisWorkbook.Worksheets("Sheet1").Range("B3").Value
  End If
  If CheckBox4.Value = True Then
    Workbooks.Open "C:\過去のリスト\" & ThisWorkbook.Worksheets("Sheet1").Range("B4").Value
  End If
  If CheckBox5.Value = True Then
    Workbooks.Open "C:\過去のリスト\" & ThisWorkbook.Worksheets("Sheet1").Range("B5").Value
  End If
End Sub


でも、これでは、あまりに煩雑なのでブラッシュアップ。
あわせて、フォルダに本当にそのファイルがあるかどうかのチェックも加えてあります。

Private Sub CommandButton1_Click()
  Dim myPath As String
  Dim fname As Variant
  Dim i As Long
  Dim myName As String
  myPath = "C:\過去のリスト\"
  fname = ThisWorkbook.Worksheets("Sheet1").Range("B1:B5").Value '指定ファイル名配列
  For i = 1 To 5
    If Me.Controls("CheckBox" & i).Value = True Then
      myName = fname(i, 1)
      If Dir(myPath & myName) = "" Then
        MsgBox "以下のファイルがみあたりませんよ" & vbLf & myPath & myName
      Else
        Workbooks.Open myPath & myName
      End If
    End If
  Next
End Sub

5 hits

【69633】チェックボックスで集計とリストを立ち上げたいのですが。 LALA 11/8/15(月) 0:33 質問
【69634】Re:チェックボックスで集計とリストを立ち... UO3 11/8/15(月) 7:14 回答
【69635】Re:チェックボックスで集計とリストを立ち... LALA 11/8/15(月) 11:26 質問
【69636】Re:チェックボックスで集計とリストを立ち... UO3 11/8/15(月) 14:02 回答
【69637】Re:チェックボックスで集計とリストを立ち... LALA 11/8/15(月) 14:14 発言
【69638】Re:チェックボックスで集計とリストを立ち... まろにえ 11/8/16(火) 11:49 発言
【69639】Re:チェックボックスで集計とリストを立ち... UO3 11/8/16(火) 12:31 発言
【69640】Re:チェックボックスで集計とリストを立ち... まろにえ 11/8/16(火) 13:27 発言
【69642】Re:チェックボックスで集計とリストを立ち... UO3 11/8/16(火) 14:12 発言
【69644】Re:チェックボックスで集計とリストを立ち... LALA 11/8/16(火) 15:10 発言
【69645】Re:チェックボックスで集計とリストを立ち... こたつねこ 11/8/16(火) 21:18 発言
【69646】Re:チェックボックスで集計とリストを立ち... ichinose@明日から仕事 11/8/16(火) 22:20 発言
【69648】Re:チェックボックスで集計とリストを立ち... こたつねこ 11/8/16(火) 22:52 発言
【69649】Re:チェックボックスで集計とリストを立ち... ichinose 11/8/17(水) 6:17 発言
【69650】Re:チェックボックスで集計とリストを立ち... まろにえ 11/8/17(水) 7:04 発言
【69653】Re:チェックボックスで集計とリストを立ち... UO3 11/8/17(水) 11:05 発言
【69655】Re:チェックボックスで集計とリストを立ち... LALA 11/8/17(水) 18:59 お礼
【69660】Re:チェックボックスで集計とリストを立ち... ichinose 11/8/18(木) 7:22 発言

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