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

締切り済みの質問

エクセル マクロの記憶で記憶する自動マクロの編集

こんにちわ。

エクセルで、マクロを記憶させて実行しています。

この自動で操作をしてくれるマクロを、50回繰り返したいのですが、
マクロの編集で文字を出して、この文字に何かを付け足すことで
50回繰り返すことはできますでしょうか?

以下、文字を出した画面です。(適当な操作を記憶させただけです)


Sub あき()

'
' あき Macro
' マクロ記録日 : 2011/8/20 ユーザー名 : user
'

'
Range("A1").Select
Selection.ClearContents
Sheets("RESULT_B(1)").Select
Selection.AutoFilter Field:=1, Criteria1:="=", Operator:=xlAnd
Range("A3").Select
Sheets("Sheet1").Select
Range("C1").Select
Selection.Cut
Sheets("RESULT_B(1)").Select
Range("A3").Select
ActiveSheet.Paste
Sheets("Sheet1").Select
Range("D1").Select
Selection.Cut
Sheets("RESULT_B(1)").Select
Range("H3").Select
ActiveSheet.Paste
Sheets("Sheet1").Select


End Sub


このすべての作業を繰り返したいのですが、
お手数ですが、ご存知の方、
どこにどういう言葉を入力したらよいのか教えて頂けませんでしょうか。


当方素人の為、訳の分からない文章になってしまい
申し訳ありません。

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

投稿日時 - 2011-08-20 15:05:03

QNo.6955454

すぐに回答ほしいです

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

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

回答(3)

ANo.3

マクロの記録で出たコードは、もう一回実行しても、コードが指すエクセルの値や、行や列や位置などがで変わることは無く、こんなことを誰もしたいと思わない。
だから2回目はここをこう変えて、3回目はここをこう変える、・・という認識を持って、対処しないとならない。
(1)変化が、指定行や指定列を1つずつ、ずらすことで良い場合。
(2)10づつ増やすような場合
(3)人間の応答に応じてその指定を使う場合(シート名だけが変わる場合など)
などがまず思いつきますが、それぞれのケースで、コード作成の方法を勉強しないとなりません。
ーーー
質問の場合質問のコードの()内のデータ(指すもの)が変化してほしいのでしょうがはっきりしません。
ーーー
フィルタの例なら>文字を出して、この文字に何かを付け足すことできますか、は出すときは、一括して・一気に結果が出るので、途中では介入できないと思うので、シートに出たあとに文字を付け加えることを考えたほうが良い。
例示も無く言っている場合の説明も無く、読者にはよくわからないのですが。
ーーーー
>適当な操作を記憶させただけです)
これはひどい。関係ないコードを読者に読ませるのですか。
それよりやりたい、始から手順を文章で箇条書きして、読者に伝えるほうが、望ましい。
初心者なら、途中操作などかけず、出発点とゴールだけの文章表現の場合もあるかもしれない。
その場合シート・セル・行・列のデータ実例を質問に書いて説明すること。

投稿日時 - 2011-10-02 22:22:49

ANo.2

とりあえずご質問の
>この文字に何かを付け足すことで
>50回繰り返すことはできますでしょうか?

をするためには,たとえば下記のような命令を書き足します。
文末に*を付けた3行が,追加した繰り返しの命令と,それに必要な変数(繰り返し回数のカウンタ)宣言の命令です。



Sub あき()

'
' あき Macro
' マクロ記録日 : 2011/8/20 ユーザー名 : user
'

'
dim i as long  ’*
for i = 1 to 50 ’*

Range("A1").Select
Selection.ClearContents
Sheets("RESULT_B(1)").Select
Selection.AutoFilter Field:=1, Criteria1:="=", Operator:=xlAnd
Range("A3").Select
Sheets("Sheet1").Select
Range("C1").Select
Selection.Cut
Sheets("RESULT_B(1)").Select
Range("A3").Select
ActiveSheet.Paste
Sheets("Sheet1").Select
Range("D1").Select
Selection.Cut
Sheets("RESULT_B(1)").Select
Range("H3").Select
ActiveSheet.Paste
Sheets("Sheet1").Select

next i  ’*

End Sub




#言わずもがなですが,あなたのマクロは
>適当な操作を記憶させただけです

だけなので,これを50回繰り返しても全く同じ事を50回やってるだけで,1回だけやった時と何も結果は変わりません。
とりあえず「繰り返すマクロ」について聞きたいだけという事ですので,参考にしてまた勉強してみてください。


たとえば新しいマクロの記録で「相対参照」ボタンを入れてマクロを記録し,それに「50回繰り返す」を追記すると,上から順に50個のセルに順繰り貼り付けるみたいな事も次第に出来るようになります。

#でもこのご相談で,「実はこういうことがしたかったんです。やっぱり最初から教えてください」を追加質問しないようにしてください。

投稿日時 - 2011-08-20 23:07:52

ANo.1

こんばんは!
一例です。

「あき」というマクロがあるのであればそれを50回繰り返すマクロを作成してみてはどうでしょうか?

Sub test()
Dim i As Long
For i = 1 To 50
Call あき
Next i
End Sub

といった感じではどうでしょう?

参考になれば良いのですが・・・m(_ _)m

投稿日時 - 2011-08-20 21:43:04

あなたにオススメの質問