advanced help
per page, with , order by , clip by
Results of 1 - 1 of about 27304 for マクロ (0.014 sec.)
[[20110922192554]]
#score: 2167
@digest: 051c40c8e2d7009416c79ad04788fee8
@id: 56043
@mdate: 2011-09-25T13:23:32Z
@size: 3028
@type: text/plain
#keywords: ブマ (9701), 黒人 (7323), 回コ (3879), ロ( (2284), 合空 (2111), サブ (2056), 下( (2013), sample1 (1874), ロ実 (1504), sample2 (1447), sample3 (1394), 述方 (1338), マク (1083), クロ (973), 一回 (919), 行前 (888), らc (805), 実行 (676), 、mo (619), 終了 (530), るマ (497), ピー (470), コピ (455), 法と (446), mook (435), ロ記 (434), 付で (433), 選択 (429), 空白 (422), てマ (415), ル( (400), value (385)
『選択したセルが空白ならマクロ停止』(黒人)
OS:XP EXCEL2003です A B 1 a a 2 c c 3 d 4 f 5 A列に手打ちしてあるデータがあります。 @一番上(a)をコピー。 A隣のB列に貼り付けます。 Bその後あるマクロを実行。 C@で選択したセル(a)の一つ下(c)が空白なら終了。 この場合空白ではないのでコピーしてB列に貼り付け。 ・・・といった動作を繰り返し、最終的にA列が空白のところまで行ったら このマクロを終了したいのです。 条件付でマクロを繰り返し、終了するやり方を教えてください。 ---- @とAは、マクロ実行前の手作業だよね。 で、@はA1を選択してCtrl/c かな。次にAでは、当然B1を選択してCtrl/vかな。 このAを行ったとき、もう@の状態(A1が選択された状態)がどうだったか、誰もわからない。 なので、Bここからマクロ実行して、Cで@のセルはどこだったのか判断できないよ。 やるなら、Bでマクロ実行させる前に、まずA1を選択させる。で、マクロを開始。 でも、この処理って、どんな意味があるんだろう? 単純に、A列の値のあるセルの値をB列に転記というのならわかるけど・・・ (ぶらっと) ---- Sub 条件付でマクロを繰り返し() Dim r As Long r = 1 Do While Cells(r,"A").Value <> "" Cells(r,"B").Value = Cells(r,"A").Value あるマクロ r = r + 1 Loop End Sub Sub あるマクロ() MsgBox "中は秘密?" End Sub ってことでしょうか。 (Mook) ---- @からCまですべてマクロで実行です。 ---- >@からCまですべてマクロで実行です。 じゃぁ、Mookさんからお答えが出ているコードのなかの 「あるマクロ」を消せばできあがり。 そのほかの方法としては、A列をコピーしてB1に貼り付ける、これをマクロ記録すれば以下のMacro1ができあがる。 それを、少しブラッシュアップしたのがSample1。ある行から下は、たとえ値があってもコピーしたくないという 要件じゃなければこれでもいい。 さらにSample2のような方法もある。いずれもループなし。 Sub Macro1() Columns("A:A").Select Selection.Copy Range("B1").Select ActiveSheet.Paste End Sub Sub Sample1() Columns("A").Copy Range("B1") End Sub Sub Sample2() With Range("A1", Range("A1").End(xlDown)) .Offset(, 1).Value = .Value End With End Sub (ぶらっと) ---- B が何かを説明した方が良いのではないでしょうか。 一回コピーするあとに何をしているのでしょう。 ただコピーするだけなら、ぶらっとさんの Sample で済んでしまいます。 (Mook) ---- >一回コピーするあとに何をしているのでしょう。 ですね。きっと。であれば、もう、Mookさんのコードそのものでいいわけで、以下は単に 別の記述方法ということで、Mookさんのコードと基本的にかわらないけど。 Sub Sample3() Dim c As Range For Each c In Range("A1", Range("A1").End(xlDown)) If Len(c.Value) = 0 Then Exit For c.Offset(, 1).Value = c.Value 'ここでなにかしらの処理をする。あるいは以下のように必要な情報を引数であたえて、サブプロシジャを実行する。 Call サブマクロ(c.Offset(, 1)) Next End Sub Private Sub サブマクロ(myR As Range) MsgBox "処理すべきセルは" & myR.Address & vbLf & "処理すべき値は" & myR.Value End Sub (ぶらっと) ...
https://www.excel.studio-kazu.jp/wiki/kazuwiki/201109/20110922192554.txt - [detail] - similar
PREV NEXT
Powered by Hyper Estraier 1.4.13, with 97057 documents and 608302 words.

訪問者:カウンタValid HTML 4.01 Transitional