OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

エクセル¥マクロで対話形式のプログラムが組める?

  • 困ってます
  • 質問No.142868
  • 閲覧数1903
  • ありがとう数4
  • 気になる数0
  • 回答数4
  • コメント数0

お礼率 20% (12/58)

エクセルのマクロでこんなことはできますか?

(1)まずプログラムを実行する。
(2)実行中に、プログラムは「○○○を入力してください」などというメッセージを発し入力待ち状態で停止する。
(3)使用者が指定されたセルに適切な数値などを入力しENTERを押す。
(4)プログラムは実行を再開する。

よろしくお願いします。
通報する
  • 回答数4
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.2
レベル12

ベストアンサー率 42% (337/793)

「入力待ち状態で停止」している状態ではワークシートへの入力はできないので、Inputbox関数を使うことになります。入力結果を所定のセルに返してあげればOKかと。

Private Sub Worksheet_Change(ByVal Target As Range)
If Target = Range("B2") Then Range("B3") = Range("B2") / 2
If Target = Range("C2") Then Range("C3") = InputBox("入力せよ")
End Sub
お礼コメント
sizuka

お礼率 20% (12/58)

ありがとうございます。
InputBox関数なるものがあったのですか…!HELPで探しても探し方が悪いのか、難航していたのですが、関連でMsgBox関数の存在も知ることができましたので大変喜んでおります。
ありがとうございました。
投稿日時 - 2001-09-29 19:00:55
-PR-
-PR-

その他の回答 (全3件)

  • 回答No.1
レベル6

ベストアンサー率 9% (1/11)

私も始めたばかりでよくわからないんですが、ifが使えるんじゃないかと思います。 If Sheets("シート名").Range("セル番号") = 数字 then    続くプログラム End If 自分で書いといてなんですけど・・・なんかもっと簡単な方法もありそうですね。 ...続きを読む
私も始めたばかりでよくわからないんですが、ifが使えるんじゃないかと思います。

If Sheets("シート名").Range("セル番号") = 数字 then
   続くプログラム
End If

自分で書いといてなんですけど・・・なんかもっと簡単な方法もありそうですね。
お礼コメント
sizuka

お礼率 20% (12/58)

早速の回答ありがとうございます。
でもこの方法ですと、あらかじめそのセルに数字を入れておかないとダメなのでは?
私がやりたいのは、あるところまで実行させて一旦プログラムを停止させ、それまでの計算結果に応じた数値を入力するというものですので、申し訳ありませんがちょっと無理な気がします。
すみません。
投稿日時 - 2001-09-29 18:55:45
  • 回答No.3
レベル13

ベストアンサー率 68% (791/1163)

下記の様にInputBoxメソッドを使うと、「入力待ち状態で停止」している状態でワークシートへの入力ができると思いますが・・・こういう主旨でしょうか? InputBoxメソッドを使えば、使用者は指定されたセルがどこかを意識し、そこを選択し入力する必要もないように思えます。Typeも色々指定できます。ご参考に。 Sub myDataInput()   '   ' 処理1・ ...続きを読む
下記の様にInputBoxメソッドを使うと、「入力待ち状態で停止」している状態でワークシートへの入力ができると思いますが・・・こういう主旨でしょうか?

InputBoxメソッドを使えば、使用者は指定されたセルがどこかを意識し、そこを選択し入力する必要もないように思えます。Typeも色々指定できます。ご参考に。

Sub myDataInput()
  '
  ' 処理1・・・
  '
  Range("A1") = Application.InputBox(prompt:="A1に入力する値", Type:=1)
  '
  ' 処理2・・・
  '
  Range("B1") = Application.InputBox(prompt:="B1に入力する文字", Type:=2)
  '
  ' 処理3・・・
  '
End Sub
お礼コメント
sizuka

お礼率 20% (12/58)

ありがとうございます。勉強になりました。
でもsnoopyさんの方が早かったので…ポイントは…ごめんなさい…
投稿日時 - 2001-09-29 19:03:14
  • 回答No.4
レベル13

ベストアンサー率 46% (643/1383)

InputBoxもそれなりに使えますが、見た目がちょっとアレなのと、機能が乏しいのとがあるので、も少し凝った入力画面を作りたいときも結構あります。 で、そういうときに使うのが、「ユーザーフォーム」です。 VBAの編集画面を開いて、[挿入]-[ユーザーフォーム]で作成できます。 作成にはある程度のVBAの知識が要求されますが、これが使えると結構便利ですよ。 ...続きを読む
InputBoxもそれなりに使えますが、見た目がちょっとアレなのと、機能が乏しいのとがあるので、も少し凝った入力画面を作りたいときも結構あります。

で、そういうときに使うのが、「ユーザーフォーム」です。
VBAの編集画面を開いて、[挿入]-[ユーザーフォーム]で作成できます。

作成にはある程度のVBAの知識が要求されますが、これが使えると結構便利ですよ。
お礼コメント
sizuka

お礼率 20% (12/58)

ありがとうございます。
面白そうですね。いろいろ凝ってみたいと思います。結構凝り性なので…
投稿日時 - 2001-09-29 19:05:16
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ