プロが教えるわが家の防犯対策術!

エクセルVBAに詳しい方に質問です。

もしA列の文字が入っていて、B列のセルが空白の場合
メッセージボックスを表示させる
そうでなければ、B列を基準に昇順に並び変える

というコードを組んでいただきたいです。

ちなみに、B列が空白の場合、文字が入力できるメッセージボックスを表示させ、
そこに入力した文字がセルに入力されるということは可能でしょうか?
(B列の複数セルが空白の場合、順番に全ての空白に入力できるようにしたいです)

よろしくお願いします。

「エクセルVBAについて」の質問画像

A 回答 (2件)

VBAに詳しくはないけど、参考程度にはなるかも。



Private Sub 入力ボックスと並べ替えl()

 Dim IB As String
 Dim i, num As Integer
' A列の文字の入ったセルをカウント
 num = WorksheetFunction.CountA(Range("A:A"))
' 空白セルを強調表示して入力ボックス
 For i = 1 To num
  If Range("B" & i).Value = "" Then
   With Range("B" & i)
    .Interior.ColorIndex = 3
     IB = InputBox("カナ入力してください", "赤色セルに入力", "")
    .Value = IB
    .Interior.ColorIndex = 0
   End With
  End If
 Next i
' 処理後に並べ替え 
 Range("B1:B" & i).Sort Key1:=Range("B1"), _
 Order1:=xlAscending, Header:=xlNo

End Sub
    • good
    • 2
この回答へのお礼

おおお!!!
すごいです、まさにこれです!
助かりました、ありがとうございました!

お礼日時:2023/02/01 18:52

>もしA列の文字が入っていて、B列のセルが空白の場合


>メッセージボックスを表示させる
>そうでなければ、B列を基準に昇順に並び変える

・B列に空白セルがあれば入力を促す。
・B列に空白セルがなければ並び替える

と言う受け取り方もありますが、多分既出の回答が合っているのでしょう。
ところで最初からB列に空白セルが存在しないで実行する可能性『入力を促す事はせず、並び替えるだけ』については、手作業で済ませちゃうものなのでしょうか?
    • good
    • 0
この回答へのお礼

・B列に空白セルがあれば入力を促す。
・B列に空白セルがなければ並び替える

おっしゃるとおりです!
「b列に空白があれば入力を促しその後並び替えを実行、b列に空白がなければすぐに並び替えを実行」できるコードを望んでおりました。

お礼日時:2023/02/01 18:50

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!