こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

プログラムを教えてください

プログラムを教えてください

エクセル2003でマクロを組もうと勉強中ですがいまいち呑みこめませんので先生方教えてください!
作りたいプログラムはコマンドボタンを押すとフィルタをして検索し、可視セルを別のエクセルシートにコピーして、そのコピーしたエクセルファイルを新規のフォルダに保存するというものです

仮にエクセル(1)、(2)、(3)とします。

(1)エクセル(1)にコマンドボタンを作りコマンドボタンを押すとフィルタリングして検索(結構広範囲)
(2)フィルタした可視セルをコピー
(3)エクセル(2)の指定場所へペースト
(4)新規フォルダ作成し保存(フォルダの名前はペーストまたはコピー元のエクセルの任意のセルから持ってきたい)
(5)エクセル(2)のシート2以降へエクセル(3)からのエクセルのシートをコピー&ペースト

です。宜しくお願いします(>人<)

投稿日時 - 2010-10-07 08:17:48

QNo.6233045

困ってます

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

シートに
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

投稿日時 - 2010-10-08 14:18:00

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.2

マクロの記録で出来たマクロを実行、でなくてマクロの記録をした結果がプログラム例になるのでそれを実行してみること、です。

回答による例はあなた自身でマクロの記録で得るものと部分的にはそう変わりはないので、教わるよりやるのが早い、サンプルとして十分でしょう。、という意味かと思います。

実行させるのが、マクロ実行かボタン押すかくらいです。

投稿日時 - 2010-10-07 14:59:57

お礼

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

投稿日時 - 2010-10-08 14:53:09

ANo.1

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

投稿日時 - 2010-10-07 09:59:12

補足

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

投稿日時 - 2010-10-07 13:42:10

あなたにオススメの質問