- ベストアンサー
エクセルでマクロの作成
a列の1行目が『No』の項目名以下の行が空欄になっています。 b列に『あ』があれば同じ行のa列を空白にして、次のb行が空欄であれば同じ行のa列に1の数字を、b列の空白行に対しa列には連続番号が入るようにしたいのですが、マクロがどうしてもうまくできません。 どなたか、初心者向けに解りやすい解説と実際のマクロを教えていただけませんか? 初心者でうまく説明できてないかもしれませんがよろしくお願いします。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
ご質問が不明確なので一応、二つ回答しておきます。 B列が空白だったら、A列に連番を入力したいなら Sub test01() Dim x As Long, i As Long, n As Long x = Cells(Rows.Count, "B").End(xlUp).Row 'B列最終行取得 For i = 2 To x If Cells(i, "B").Value = "" Then 'B列が空白なら n = n + 1 Cells(i, "A").Value = n Else Cells(i, "A").ClearContents End If Next i End Sub B列が、空白や「あ」を含んだ文字列以外だったら、A列に連番を入力したいのなら Sub test02() Dim x As Long, i As Long, n As Long x = Cells(Rows.Count, "B").End(xlUp).Row 'B列最終行取得 For i = 2 To x If InStr(Cells(i, "B").Value, "あ") > 0 Then 'B列に「あ」を含んでいたら Cells(i, "A").ClearContents Else n = n + 1 Cells(i, "A").Value = n End If Next i End Sub
その他の回答 (4)
あなたのように自分が理解していれば第3者も理解しているような表現してこない人 非常に多いです、 それでは第3者に何がしたいかさっぱりわかりません あなたの記述 a b c d 1 no あ 2 あ 3 あ 4 あ この時点は理解出来ます セルb1に あ があります この時に noを消してセルa1を 空白状態にして、 次のb行とはどこのことでしょうか? こういう説明になりますが
お礼
早速お答えいただきありがとうございます。 表現が未熟で充分にお伝えする事ができなくて、申し訳ありませんでした。 実際の表が解りやすいですネ、ご指摘ありがとうございます。 a b c d 1 あ 2 あ 3 あ 4 あ 5 あ とこのような感じです。 ありがとうございました。
- mu2011
- ベストアンサー率38% (1910/4994)
>マクロがどうしてもうまくできません。 ⇒丸投げの質問はマナー違反では無いでしょうか。 例えば、現時点のマクロコードを記載し、上手くいかない現象を記載した方が良い。 >b列に『あ』があれば同じ行のa列を空白にして、次のb行が空欄であれば同じ行のa列に1の数字を、b列の空白行に対しa列には連続番号が入る ⇒文章の表現が解り辛い、先ずはA列がどうなればよいのかを明確にする事、 次に一連番号の設定条件として対応行B列の状態(空白、「あ」、「あ」以外等)を記載する事と思う。 又、文章が苦手ならば表で表現したら如何でしょうか。
お礼
早速お答えいただきありがとうございます。 ご指摘のように丸投げはマナー違反とは思いましたが、初めてのマクロで、1からの勉強でしたので、それにお答えいただくのはあまりに申し訳ないと思いました。 表にすると良かったですネ、今度からそのようにいたします。 a b c d 1 あ 2 あ 3 あ 4 あ 5 あ 作りたかったのはこのような表です。 ありがとうございました。
- FEX2053
- ベストアンサー率37% (7991/21371)
マクロに限らずプログラムを作るときは、コンピュータの動作について、素人でも分かるように完璧に動作を記述する必要があります(この「完璧に書かれた書類」を仕様書と言います)。 逆に言えば、動作を完ぺきに日本語で記述できない場合、プログラムは書けません。少なくとも、質問者さんの記述は「完璧」ではなく、動作が全く分かりませんのでマクロは組めません。まずは、動作を「隣に座っている業務に関係ない人」にも分かるように記述して下さい。質問はそれからですよ。
お礼
ありがとうございます。 ご指摘の通りです、まず仕様書の理解から勉強します。
- knmrstkt
- ベストアンサー率31% (10/32)
やりたいことはよくわからないですが。 別にマクロじゃなくて関数でええんとちゃうか? マクロはvbaなんで本かえよ。ってかいろいろなマクロの記録をしてコードを覚えたらどう?
お礼
はい、ご指摘いただいたとおりです、まず本を買ってきます。 ありがとうございました。
お礼
早速お返事をいただき、本当にありがとうございます。 実際に使わせていただき、また不明な点がありましたら、質問させてください。 『B列が空白だったら、A列に連番を入力したいなら』のご回答で使わせていただきます。 不行き届きの表現をご理解いただきありがとうございました。 勉強させていただきます。