[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『Inputboxのキャンセルについて』(ゆるキャン)
いつもお世話になっております。
過去ログを見て下記コード作成してみましたが、
Inputboxでキャンセルをしたときは処理の中止ができたのですが
、OKの時も処理が中止されてしまいました。
やりたいことは、
Sheet(1)のJ1セルが空白ならInputboxで入力をさせてから次の処理を実行させる
空白じゃなければInputboxは出さずに次の処理を実行させる
Inputboxでキャンセルされたらキャンセルとして処理をおわりにする
Inputboxで空白でOKされたらもう一度Inputboxを出す
Private Sub テストボタン_Click()
If Sheets(1).Range("J1").Value = "" Then
Dim st As String
st = InputBox("入力してください", "ここに入力する")
Sheets(1).Range("J1") = st
' Cells(1, 10)= st
End
End If
If StrPtr(st) = 0 Then
End If
次の処理
知識が乏しくまだま勉強中です。
よろしくお願いします。
< 使用 Excel:Excel2016、使用 OS:Windows10 >
Dim St As String Do St = InputBox("入力してください", "ここに入力する") If StrPtr(St) = 0 Then MsgBox "キャンセル" Exit Sub ElseIf Len(St) = 0 Then MsgBox "何も入力されていません。" Else Exit Do End If Loop MsgBox St & "が入力されました" (BJ) 2020/02/21(金) 11:57
Private Sub テストボタン_Click()
'もし、左から1番目のシートのJ1セルが空白なら If IsEmpty(Sheets(1).Range("J1").Value) = True Then 'その時はインプットボックスを表示して文字の入力を促す Dim st As String Do st = InputBox("入力してください", "ここに入力する") 'もし、インプットボックスがキャンセルされたら、処理を抜ける If StrPtr(st) = 0 Then Exit Sub 'もし入力が0文字より多いなら If Len(st) > 0 Then 'ループを抜ける Exit Do Else MsgBox "空白でOKを押されました。", vbExclamation End If '繰り返し Loop End If
'セルの値を設定 Sheets(1).Range("J1").Value = st
'次の処理
End Sub
こんな感じですかね
参考URL>>
https://www.relief.jp/docs/excel-vba-inputbox-cancel.html
http://officetanaka.net/excel/vba/tips/tips37.htm
解らなくなったら、インストラクターさんか
田中さんのサイトをとりあえず探ってみてください。
(まっつわん) 2020/02/21(金) 12:12
まっつわんURLまでありがとうございます!
実践はまだできていませんが、後ほど時間をつくって試します!
またわからなくなって行き詰ってしまった時、お世話になります💦
(ゆるキャン) 2020/02/21(金) 12:19
やりたいことは、
Sheets(2)のA1セルが空白ならMsgbox出して終わり
Sheets(2)のA1セルが空白じゃなければ、
Sheet(1)のJ1セルが空白ならInputboxで入力をさせてから次の処理を実行させる
空白じゃなければInputboxは出さずに次の処理を実行させる
Inputboxでキャンセルされたらキャンセルとして処理をおわりにする
Inputboxで空白でOKされたらもう一度Inputboxを出す
ですが、J1セルが空白じゃないとき、次の処理をする前に、J1セルにあった値が消されてしまいます。
どのようにすればいいでしょうか?
If Sheets(2).Range("A1").Value = "" Then
MsgBox "データを貼り付けてください", vbCritical, End End If
If IsEmpty(Sheets(1).Range("J1").Value) = True Then
'その時はインプットボックスを表示して文字の入力を促す Dim st As String Do st = InputBox("あなたの所属グループ名を入力してください。" & vbLf & "(例)神戸飲食G→神戸" & vbLf & " 大阪キタ飲食→大阪キタ", "自組織を絞りこむため", "神戸") 'もし、インプットボックスがキャンセルされたら、処理を抜ける If StrPtr(st) = 0 Then Exit Sub 'もし入力が0文字より多いなら If Len(st) > 0 Then 'ループを抜ける Exit Do Else MsgBox "空白でOKを押されました。", vbExclamation End If '繰り返し Loop End If 'セルの値を設定 Sheets(1).Range("J1").Value = st 次の処理
自分で考えてみても分かりませんでした💦
よろしくお願いします><
(ゆるキャン) 2020/02/25(火) 20:41
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.