学校の成績一覧表を作っています。成績は◎、○、△の3段階でつけます。
一覧表の中に、◎と△だけをつければ、残りの空白セルには、マクロで○が入るようにしてあります。
Excelのバージョンは2003です。
しかし、クラスによって人数が違うので、自動的に○が入るようにしてあっても、どこまで入れたらいいのかは変わってきます。
そこで、氏名を入れるセルを参照し、「もし、このセルが空白だったら、その下のセルはすべて空白になる」というような関数を入れておけばいいのかなと考えました。が、その関数がわかりません。
どなたか、教えてもらえませんでしょうか?
C1 D1 E1 F1 G1・・・・・
伊 佐 鈴 山
藤 藤 木 田
B2
読む力 ○ ◎ △ ◎
B3
書く力 ◎ ○ ○ △
分かりにくいでしょうが、上のような感じで作ってます。
上の場合、G1セルに名前が入っていないので、G2セルから下は、マクロでは○が入りますが、関数によって空白にしたいのです。
よろしくお願いします。
A 回答 (10件)
- 最新から表示
- 回答順に表示
No.10
- 回答日時:
>何度もありがとうございます。
自分もそう思って、やってみたのですが、うまくいかなくて、>それで、上に補足を入れさせてもらったんです。
>どうすればいいのかなと思ってます。ありがとうございます。
空白の判定でうまくいかない場合、セル参照での未入力セルの値が空白ではなく0と判定されていると思われるので、空白と0の判定をORでつないで条件とすればいいと思われます。
No.9
- 回答日時:
「書いていただいたものをマクロのところに貼り付けましたが、どこにも○は出ませんでした」
貼り付けただけでは、○はでないよ。
ちゃんと実行しなければね。
なお、回答したコードはちゃんと動きます。○が出ないはずがないが、
もし、出ないとすればあなたのやり方が悪いか、そのExcelは壊れている。あきらめなさい。
No.8
- 回答日時:
>書いていただいたものをマクロのところに貼り付けましたが、どこにも○は出ませんでした。
どこにも出なかった、ですか。
確認ですが、コードは標準モジュールに貼り付けていますか?
シートモジュールに貼り付けているということはありませんか?
その場合、貼り付けたシートのみで動作し、別のシートだと動作しません。
「マクロの記録」を使ったのであれば普通は自動的に標準モジュールが追加されるので、その可能性は少ないかとは思いますが…
No.7
- 回答日時:
No.5です。
私やNo.4さんが書いたコードを実際に動かしてみたのですよね?
それがどういう結果になったかを書いていただけないでしょうか。
例えば
・想定している範囲の外まで○が入力されてしまった
・1行目に名前が入っていない列にも○が入力されてしまった
・どこにも○が入力されなかった
など、もっと具体的に。
ただ「うまくいかなかった」だけでは原因は特定できないです。
この回答への補足
すいませんでした。
書いていただいたものをマクロのところに貼り付けましたが、どこにも○は出ませんでした。貼り付け方がおかしかったのかもしれませんが・・・。
No.6
- 回答日時:
#4です。
数式が入っているが、空白に見えるということなら、
次ではどうでしょうね。
Sub Macro1()
c = 0
While Range("C1").Offset(0, c) <> ""
c = c + 1
Wend
r = 0
While Range("B2").Offset(r, 0) <> ""
r = r + 1
Wend
Range("C2").Resize(r, c).SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "○"
End Sub
No.5
- 回答日時:
名前が入っているセルは、見かけ上空白でもブランクセルではない可能性があるということですよね?
以下のようなマクロでどうでしょうか。
Sub マクロ()
Dim MaxRow As Long
Dim MaxCol As Long
Dim r As Range
MaxRow = 2
MaxCol = 3
Do Until Cells(1, MaxCol + 1) = ""
MaxCol = MaxCol + 1
Loop
Do Until Cells(MaxRow + 1, 2) = ""
MaxRow = MaxRow + 1
Loop
For Each r In Range(Cells(2, 3), Cells(MaxRow, MaxCol))
If r.Value = "" Then
r.Value = "○"
End If
Next r
End Sub
この回答への補足
みなさん、ご回答をいただき、ありがとうございます。
自分もマクロを勉強し始めたばかりなので、分かっていないところばかりなのですが・・・。
質問のところに書いたマクロですが、一覧表の中に、まずは◎と△だけを全部入れてしまいます。次に「新しいマクロの記録」にして、記録を始めたら、「編集」⇒「ジャンプ」⇒「セル選択」⇒「空白セル」で○を入れ、「Ctrl」キーを押しながら確定して、記録を終了しました。
一覧表は40名分作ってありますが、クラスによって人数はまちまちなので、氏名の欄に名前が入っていなかったらその下のセルはすべて空白としたいのです。
IF関数で、「もし、氏名を入れるセルが空白なら空白、氏名を入れるセルに名前が入っていたら、空白セルだけを選択して、一斉に○を入れる」というマクロを組みたいのです。
口で言うのは簡単ですが、それが難しくって・・・。
どなたか、お知恵を拝借できませんでしょうか?
質問文の説明がわかりにくくて申し訳ありませんでした。
もう一度、よろしくお願いします。
さっそくのご回答、ありがとうございます。
試してみたのですが、うまくいきませんでした・・・。
自分のやり方がおかしいんでしょうか?
せっかく作っていただいたのに、申し訳ないです・・・。
でも、大変、感謝しております。ありがとうございました。
No.4
- 回答日時:
"○"を入れるマクロを次のようにでもする。
Sub Macro1()
c = Range("C1").End(xlToRight).Column - 2 '2は、C2の列番号-1です
r = Range("B2").End(xlDown).Row - 1 '1は、C2の行番号-1です
Range("C2").Resize(r, c).SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "○"
End Sub
ご回答、ありがとうございます。
さっそく入れてみたのですが、うまくいきませんでした・・・。
せっかく作っていただいたのに申し訳ないです・・・。
でも、感謝しております。ありがとうございました。
No.1
- 回答日時:
空白セルに自動で○を入れるマクロ処理があるのでは、関数によって空白にしたセルもマクロ処理で○になってしまうでしょう
したがって、空白セルに自動で○を入れるマクロ処理を変更して、氏名のセルに名前が入っている場合のみ空白セルに自動で○を入れるようにマクロ処理を変更すればいいです
この回答への補足
すいません、氏名を入れるセルには、数式が入っていますので、(別のシートに、氏名を入力する欄を作ってあり、その氏名が成績一覧表の氏名を入れるセルに飛ぶようにしてあるんです。)空白セルとは違うのですが・・・。こんな場合は、どんな関数にしたらいいのでしょうか???教えていただければありがたいです。よろしくお願いします。
補足日時:2012/05/15 14:41お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) WORKDAY関数 4 2023/06/08 13:23
- Excel(エクセル) Excel 特定セルの数値を参照したセルの0表示が空白にならないのはどうしてか? 3 2022/04/28 22:23
- Excel(エクセル) エクセル関数についてお教えください 3 2023/07/24 12:33
- Excel(エクセル) Excelについて A1からA12まで、1月〜12月と入力し、 B1からB12の範囲に、C1とD1に 4 2022/05/26 22:48
- Excel(エクセル) COUNTIFSについて 2 2022/08/30 14:48
- Visual Basic(VBA) ExcelVBAのマクロについて。 9 2022/05/04 14:50
- Excel(エクセル) 【エクセル】複雑な関数を教えてください 1 2023/06/05 18:09
- Excel(エクセル) Excelでnullになるような式のセルをマクロで空白行と認識させるにはどうすればいいですか? 3 2023/03/13 13:42
- Excel(エクセル) エクセル表作成について 5 2023/03/12 13:25
- Excel(エクセル) ユーザー定義について質問です。 2 2023/06/28 13:21
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセル初心者です 関数の入れ...
-
Microsoft1Officeの互換ソフト...
-
Excel ピボットテーブルで日付...
-
エクセル関数を教えてください
-
【マクロ】その時、その時で変...
-
【マクロ】読取専用のファイル...
-
LOOKUP関数を使えばいいのでし...
-
エクセル 白黒印刷で白線を印刷...
-
【関数】先頭だけにある、半角...
-
【関数】適切な文字数の数字を...
-
Excelのチェックボックスの使い...
-
エクセルでの作業計算方法について
-
Excelのpivotについて質問です
-
WPS OFFICEでの縦書きについて
-
時間によってファイル名が変わ...
-
エクセルのセルに同じ大きさの...
-
Aというブックの1というシート...
-
エクセルの順位別一覧表の自動...
-
西暦や和暦の表示をyyyymmdd表...
-
【マクロ】エクセルにかいてあ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel 2019 のピボットテーブル...
-
[関数得意な方]教えて下さい・...
-
Excelにてある膨大なデータを管...
-
[関数について]わかる方教えて...
-
Excel初心者です。 詳しい方、...
-
excelの不要な行の削除ができな...
-
エクセル関数に詳しい方教えて...
-
INDIRECTを使わず excelで複数...
-
[オートフィルタ]で抽出された...
-
エクセルの神よ、ご回答を! エ...
-
エクセル関数に詳しい方、教え...
-
各ページの1番上の表示について
-
Excelで写真のような表を作った...
-
エクセルで不等号記号(≠)が上に...
-
数学 Tan(θ)-1/Cos(θ)について...
-
Excel 2019 は、SPILL機能があ...
-
Excelで全角を半角にしたいので...
-
条件付き書式を教えてください
-
Excel フィルターを掛けた状態...
-
[オートフィルタ]の適用範囲の...
おすすめ情報