質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

マクロ

定義された処理手続きに応じて、どのような一連の処理を行うのかを特定させるルールをマクロと呼びます。

Q&A

解決済

3回答

593閲覧

VBA ツリービューからファイル印刷

退会済みユーザー

退会済みユーザー

総合スコア0

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

マクロ

定義された処理手続きに応じて、どのような一連の処理を行うのかを特定させるルールをマクロと呼びます。

0グッド

0クリップ

投稿2018/06/20 03:41

編集2018/07/01 23:35

■実現したいこと
①ツリービューを利用して親フォルダと子フォルダ複数とExcelファイル複数を表示させる方法
② ①で選択したフォルダが違うExcelファイル複数をリストボックスに表示させる方法
③ ②のリストボックス内のExcelファイルをブック全体で印刷する方法
■実現出来ること
下記のコードではツリービューを使用してませんが処理的にはファイルを選択してリストボックスに表示させ、リストボックス内のファイルを印刷することまではできますが、実現したいことのツリービューを使用した複数のフォルダからファイルを選択してリストボックスに表示させ印刷がわかりません。

VBA

1Private Sub btn_FileOpen_Click() 2 Dim OpenFileName As Variant, Target As Variant 3 'カレントディレクトリを指定 4 ChDrive "C" 5 ChDir "C:\test" 6 OpenFileName = Application.GetOpenFilename(FileFilter:="Microsoft Excelブック,*.xls?", _ 7 MultiSelect:=True) 8 If IsArray(OpenFileName) Then 9 With Me.BookInput 10 .Clear 11 'リストボックスにファイル名を表示 12 For Each Target In OpenFileName 13 .AddItem Dir(Target) 14 Next Target 15 'ファイルのあるフォルダーのパスをラベルに表示 16 Me.lblPath.Caption = Replace(OpenFileName(1), .List(0, 0), "") 17 End With 18 Else 19 MsgBox "キャンセルされました" 20 End If 21End Sub 22Private Sub btn_FilePrint_Click() 23 Dim wb As Integer 24 Dim Fn As Variant, i As Long 25 Application.ScreenUpdating = False 26 With Me.BookInput 27 For i = 0 To .ListCount - 1 28 Set wb = Workbooks.Open(Me.lblPath.Caption & .List(i, 0)) 29 wb.PrintOut 'ブック全体を印刷 30 wb.Close 31 Next 32 End With 33End Sub 34Private Sub UserForm_Initialize() 35 Me.lblPath.Caption = "" 36End Sub

よろしくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

ベストアンサー

VBA - VBAで複数のExcelファイルを印刷するマクロについて(131198)|teratail
VBA - VBAでExcelファイルをまとめて印刷するマクロについて(131957)|teratail
この1連の質問の流れですね。
一つの質問を解決済みにしてから、次の質問に進むようにしましょう。
また、関連する質問は上記のようにリンクを置いておくといいでしょう。

後、下記の点についての仕様を明確にしてください。

  • 親フォルダーは一つで固定なのか。
  • また、親フォルダーにもExcelファイルはあるのか。
  • フォルダーの階層は親、子の2階層までなのか。それ以下の階層のフォルダーもあるのか。

この手の要件はどのようなUIするかが重要ということは前の質問でも回答しました。
ツリービューを検討されたのはいいのですが、他の回答者も言われているように難易度が高いし、環境依存の問題もあります。その割に使いやすいとも思えません。自分のスキル以上のものにするとメンテナンスも難しくなります。

前の回答での最初の画像のサンプルに、リストボックスを一つ追加して、

  • 親フォルダーリストボックス
  • 子フォルダーリストボックス
  • ファイル名リストボックス
  • 選択ボタン(➡ボタン)
  • 選択されたファイルリストボックス

という構成のUIではどうですか。

投稿2018/06/20 05:47

編集2018/06/20 06:13
hatena19

総合スコア33715

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

①ツリービューを利用して親フォルダと子フォルダ複数とExcelファイル複数を表示させる方法

見映えに拘りたいのは解りますが、難易度が上がりますので、
身の丈にあったことをするのが得策と思います。
また、ツリービューはエクセルに標準で付いてくるものではないので、
環境によっては使えない場合がありますし、
配布する場合は著作権的に注意が必要です。
なので、使わない方が無難です。

② ①で選択したフォルダが違うExcelファイル複数をリストボックスに表示させる方法

https://teratail.com/questions/131957
こちらで書きましたが似たようなSampleを別途書いてます。
そちらの方は試してみていただけたでしょうか?

投稿2018/06/20 04:49

mattuwan

総合スコア2136

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

投稿2018/06/20 04:16

sazi

総合スコア25184

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問