• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:プログラムを教えてください)

エクセルでフィルタをかけて可視セルを別のシートにコピーし、新規フォルダに保存するプログラムについて教えてください

このQ&Aのポイント
  • エクセル2003でマクロを組もうとしていますが、コマンドボタンを押すとフィルタをかけて検索し、可視セルを別のシートにコピーし、そのコピーしたエクセルファイルを新規のフォルダに保存するプログラムを作成したいです。
  • 具体的には、(1)コマンドボタンを作成し、押すとフィルタがかかります。(2)フィルタした可視セルをコピーします。(3)コピーしたセルを他のエクセルシートにペーストします。(4)新しいフォルダを作成して、エクセルファイルを保存します。(5)エクセルファイルのシートをコピー&ペーストします。
  • このプログラムの実装方法について詳しく教えていただけると助かります。エクセル2003でのマクロの勉強中ですが、まだ理解が浅いため、具体的な手順やコードの記述方法についてお伺いできればと思います。

質問者が選んだベストアンサー

  • ベストアンサー
  • mumugorou
  • ベストアンサー率100% (1/1)
回答No.3

シートに Private Sub CommandButton1_Click() UserForm1.Show End Sub ----------------------------------------------------------------- 'フォームに Private Sub UserForm_Initialize() '直接コンボボックスの値を指定する場合 With Me.ComboBox1 .Style = fmStyleDropDownList 'リストにない文字列を入力する可能性があるならfmStyleDropDownComboに変更 .AddItem "候補1" .AddItem "候補2" .AddItem "候補3" .ListIndex = -1 '-1なら未選択の状態、0なら候補1、1なら候補2が選択された状態になる End With 'セルの値を反映する場合 With Me.ComboBox1 .Style = fmStyleDropDownList .RowSource = "Sheet1!A1:A3" '対象範囲 .ListIndex = -1 End With 'どちらかで 4つ分記述 End Sub Private Sub CommandButton1_Click() '自動生成されたマクロを流用 'コンボボックスで選択した文字列は Me.ComboBox1.Value 'A1がC:\TESTなら 'MkDir Cells(1, 1).Value で MkDir "C:\TEST" と同じ End Sub

その他の回答 (2)

  • layy
  • ベストアンサー率23% (292/1222)
回答No.2

マクロの記録で出来たマクロを実行、でなくてマクロの記録をした結果がプログラム例になるのでそれを実行してみること、です。 回答による例はあなた自身でマクロの記録で得るものと部分的にはそう変わりはないので、教わるよりやるのが早い、サンプルとして十分でしょう。、という意味かと思います。 実行させるのが、マクロ実行かボタン押すかくらいです。

marsh_village
質問者

お礼

丁寧な回答ですばらしいです!ベストアンサーに決定しました!また回答よろしくです(^-^)

  • nda23
  • ベストアンサー率54% (777/1416)
回答No.1

メニューバーの「ツール」から「マクロ」→「新しいマクロの記録」を 実行し、アナタの書いた(1),(2),(3),(5)の操作をします。 その後、マクロの記録を停止すると、今やった動作がマクロ化されて いるので、そのままボタンクリック時の動作に指定します。 フォルダの作成はMkDir "C:\~"で作ります。 尚、自動生成されたマクロにはActiveSheetとかActiveCellとか 表現されていますが、正しくはThisWorkbook.WorkSheets("xx")、 或いはThisWorkbook.WorkSheets("xx").Cells(行, 列)のように 記述すべきです。(xxはシート名)

marsh_village
質問者

補足

マクロの記録ではなくユーザーフォームを使ったプログラムを目指してます。 リストボックスやコンボボックスとかで年度を選びフィルタをかけて可視セルコピーして・・・ といった具合です。 フォルダの作成はMkDir "C:\~"で作れますがフォルダ名をエクセルの指定セルの文字列などから引用したいんですがやり方がわかりません。 具体的に作ってみたいのはコマンドボタンを押すとユーザーフォームを呼び出しユーザーフォームはリストボックスを4つ作りそれぞれ選択して実行するとフィルタリング&コピー。別ファイルにペースト&フォルダを作りフォルダ名をセルからの引用し保存です。何から質問していいかわからなかったので作りたいプログラム全体で質問させていただきました。できれば例としてプログラムを見せていただきたいです。宜しくお願いいたします(>人<)