
初めまして。
仕事にて、EXCELに工程遅延の原因を記入しているのですが、
同じ理由(約50種類あります)を何度も記入する必要があるため、
理由ごとに番号を割り振って、ボタン一つで記入できるようにしたいと思っています。
そこで、下記のようにマクロを作成してみたのですが、
現状では、例えばCells(1, 1)に何かを特記していた場合、
記入後にこのマクロを実行してしまうと、Cells(1, 1)の特記が、
上書きにより消えてしまいます。
そこで、Cells(num, 1)が空白であれば、Cells(num, 1)に上書きする、
という条件を付加したいのですが、可能でしょうか。
EXCELマクロの本を参考に作成しているのですが、
組み合わせの方法が分かりません。
お時間がある方いらっしゃいましたら、
ご検討よろしくお願い致します。
Sub 理由挿入()
Dim num As Integer
For num = 1 To 100
Select Case Cells(num, 2).Value
Case 1
Cells(num, 1).Value = "理由1"
Case 2
Cells(num, 1).Value = "理由2"
Case 3
Cells(num, 1).Value = "理由3"
Case 4
Cells(num, 1).Value = "理由4"
End Select
Next
End Sub
No.1ベストアンサー
- 回答日時:
Sub 理由挿入()
Dim num As Integer
For num = 1 To 100
If Cells(num, 1).Value = "" Then
Select Case Cells(num, 2).Value
Case 1
Cells(num, 1).Value = "理由1"
Case 2
Cells(num, 1).Value = "理由2"
Case 3
Cells(num, 1).Value = "理由3"
Case 4
Cells(num, 1).Value = "理由4"
End Select
End If
Next
End Sub
でいいんじゃないか。
No.4
- 回答日時:
> EXCELマクロの本を参考に作成しているのですが、
> 組み合わせの方法が分かりません。
Select Caseの中に、更にIfやSelect Caseを入れられます。
以下は、Cells(i, 1)が空白でない場合は改行をして同じセルに
追記する場合のサンプルです。
(セルに記録する値を、一旦変数で受ける形にしました)
Sub 理由挿入()
Dim i As Integer, Val1 As String, Val2 As String
For i = 1 To 100
Val1 = Cells(i, 1)
Val2 = Cells(i, 2)
Select Case Val2
Case 1
'If文を入れ子にする例(1)
If Val1 = "" Then
Val1 = "理由1"
Else
Val1 = Val1 & vbCrLf & "理由1"
End If
Case 2
'If文を入れ子にする例(2)
If Val1 = "" Then Val1 = "理由2" & Val1 = Val1 & vbCrLf & "理由2"
Case 3
'IIF関数を使用する例
Val1 = IIF(Val1 = "", "", Val1 & vbCrLf) & "理由3"
Case 4
'Select Case を入れ子にする例
Select Case Val1
Case ""
Val1 = "理由4"
Case Else
Val1 = Val1 & vbCrLf & "理由4"
End Select
End Select
'変数に記録した値でセルを上書き
Cells(i, 1) = Val1
Next
End Sub
DexMachina殿
ご回答ありがとうございます。
無事、ファイルを作成することができました。
丁寧にご記入くださったのに、ポイントを差し上げることができず、
申し訳ございません。
No.3
- 回答日時:
うぎゃ・・・End Ifの位置をまちがった^-^;
Sub 理由挿入()
Dim num As Integer
For num = 1 To 100
If Cells(num,1) = "" Then
Select Case Cells(num, 2).Value
Case 1
Cells(num, 1).Value = "理由1"
Case 2
Cells(num, 1).Value = "理由2"
Case 3
Cells(num, 1).Value = "理由3"
Case 4
Cells(num, 1).Value = "理由4"
End Select
End If
Next
End Sub
No.2
- 回答日時:
IF文で空白の時だけSelect文を実行するようにすれば
処理可能です
Sub 理由挿入()
Dim num As Integer
For num = 1 To 100
If Cells(num,1) = "" Then
Select Case Cells(num, 2).Value
Case 1
Cells(num, 1).Value = "理由1"
Case 2
Cells(num, 1).Value = "理由2"
Case 3
Cells(num, 1).Value = "理由3"
Case 4
Cells(num, 1).Value = "理由4"
End Select
Next
End If
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
この表現は正しいですか?
-
小さい子どもが母親がよその人...
-
選挙。自民散々でした。
-
理由を聞くと、なんとなくと答...
-
志望理由に将来の夢が実家を継...
-
申し訳ございませんとは
-
日大学生の人数は?
-
奨学金なしで進学した人間は、基...
-
河合塾の英語の学力到達度テス...
-
来年受験があります、偏差値39...
-
学歴と社会で成功する人
-
急いでいます!!!! 貴塾?
-
神奈川県全県模試かW模擬 どっ...
-
商品を原価の3割の利益を見込み...
-
小中学生の名札はプライバシー...
-
実力テスト150点は偏差値どのく...
-
高1(4月から高2)生です。 1月...
-
一番右のpkaが酢酸のpkaよりも...
-
北九州市立大学法学部に合格で...
-
偏差値48くらいの私立高校で500...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
この表現は正しいですか?
-
上が✖で下が〇になる理由が、何...
-
人の名前でなぜ薊とつけたらダ...
-
故 訳 由 この3つの使い分けを...
-
日本男性の草食化の理由について
-
理由を聞くと、なんとなくと答...
-
「理由と道理」「理由と筋道」...
-
小さい子どもが母親がよその人...
-
部活でトロンボーンを志望した...
-
志望理由に将来の夢が実家を継...
-
賃借権を目的として抵当権を設...
-
小論文でテーマが家族
-
一番かっこいい物理学者は誰で...
-
来たがらない理由 と 来ない理...
-
Yahoo!知恵袋と教えてgoo。どっ...
-
アップルウォッチって出たとき...
-
面接で、 『趣味はなんですか?...
-
高校受験の志願理由書に汚れが…...
-
平成22年度電検王さんの問題に...
-
少子高齢化の原因は
おすすめ情報