• ベストアンサー

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

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

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

  • ベストアンサー
  • snoopy64
  • ベストアンサー率42% (337/793)
回答No.2

「入力待ち状態で停止」している状態ではワークシートへの入力はできないので、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
質問者

お礼

ありがとうございます。 InputBox関数なるものがあったのですか…!HELPで探しても探し方が悪いのか、難航していたのですが、関連でMsgBox関数の存在も知ることができましたので大変喜んでおります。 ありがとうございました。

その他の回答 (3)

  • ARC
  • ベストアンサー率46% (643/1383)
回答No.4

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

sizuka
質問者

お礼

ありがとうございます。 面白そうですね。いろいろ凝ってみたいと思います。結構凝り性なので…

  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.3

下記の様に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
質問者

お礼

ありがとうございます。勉強になりました。 でもsnoopyさんの方が早かったので…ポイントは…ごめんなさい…

  • kzycki
  • ベストアンサー率9% (1/11)
回答No.1

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

sizuka
質問者

お礼

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

関連するQ&A

  • エクセルのマクロ

    エクセルでマクロを使うときにセルに入力した数値などを変えた時に自動でマクロを実行するようにできませんか?

  • エクセルマクロでご教授下さい。

    エクセルマクロでご教授下さい。 1.あるマクロをセルを入力(Enter)したら実行するには どのように記述すればいいでしょうか? 例えばG12に文字を入力しEnterした時 に実行したい。 2.あるマクロをシートを選択した時に実行するには どのように記述すればいいでしょうか? 以上宜しくお願い致します。

  • エクセルのマクロについて

    エクセルを閉じる時に指定されたセルに数値を入れていないと閉じられない(またはエラーメッセージを出す)ような設定ってありますか?マクロになるのかのと思うのですが・・・。基本的なことですいませんが教えてください。

  • エクセルでマクロを自動的に実行

    表題の通りなんですが、エクセルで、あるセルに指定された数値(語句)が入った場合に、それを自動的に感知して実行するマクロがあればと思うのですが、そういったことってできるのでしょうか。 具体的には、  1、バーコードリーダーで数値をセルに入力  2、その数値に対応する名前をvlookup関数にて表示  3、その名前が入力された時点でマクロが自動的に実行 と言うものです。  3の部分がよく分からずに困っています。できるかどうか分かりませんが、もしできるようであるならその方法を教えていただければありがたいです。どうか、よろしくお願いします。

  • エクセルのマクロで

    こんにちは、お願いします。 エクセルに画像の添付でマクロを使用したいのですが、 下記のようなマクロ作成・編集ができるのでしょうか? エクセルの特定のセルに画像のファイル名を入力しマクロを実行すると、他のフォルダにある.jpg画像が指定したセル位置に添付される。 また、添付位置を複数にもできますか? 説明がわかるでしょうか…?^_^; マクロに関して全く無知なのですが、できるものでしたら是非教えてください。 宜しくお願いします。

  • マクロで複数のセルに数値を入力したい

    エクセル、マクロとも初心者なのですが、タイトル通りのことをするにはどうしたらよいか教えてください。 やりたいことは、 「指定したアクティブセル(毎回変わる)を選択し、その隣のセルにあらかじめ決められた数値をマクロで入力する」というものです。 例えば・・・ A1をアクティブにし、マクロを実行する B1、C1、D1、E1のセルに決められた数値が入力される こんな感じです。 基本的なことかもしれませんが、どうかよろしくお願いします。

  • エクセル2000:決まったセルに数値が入力されたらマクロを起動させたい

    エクセル2000:決まったセルに数値が入力されたらマクロを起動させたい。 たとえばセルA1に、1以上の数値が入力されたときに、セルA2に今日の日付を入力させる マクロの記述はどうすれば宜しいでしょうか? 以下の記述で、セルA2に日付は入力させられるのですが、 セルA1に1以上の数値が入力された場合に起動させる方法が分かりません。 Range("A2").Select SendKeys "^(;){ENTER}" ご教授の程、宜しくお願い申し上げます。

  • エクセル2007でのマクロの記録

    マクロ初心者です。しょうもない質問で申し訳ありません。 エクセル2007で並び替えをマクロに記録させても並び替えが実行できません(エクセル2003は可能でした)。 例えば・・・マクロの記録を実行→B4セルから下に10~1の数字を入力→その後並び替えボタンをクリックし、昇順で1~10に並び替える→マクロの記録を停止。確認のため、シート2でマクロを実行。数字は入力されるが、並び替えがおこなわれません(T_T) エクセル2007では並び替えのマクロは記録できないのでしょうか??それとも不具合ですか?もし簡単に出来る方法等があるなら教えて頂ければ幸いです。 お手数をおかけしますが、どなたかご回答を頂けると幸いです。

  • エクセル

    セルの入力をするときに、以前入力したことが、出てきます。エンターを押すとエクセルの動作を停止しました。解決策がある場合はWindowsから通知されます。のメッセイジが出てきます。プログラムの終了ボタンを押さないと動きません。教えてください!!エイサー5620Visutaです。エンターを押さないで、入力をして、以前の入力が消えるとそのまま大丈夫です。よろしくお願いします。

  • 表示形式を変えるマクロのコードは?エクセル2010

    エクセル2010です。 よろしくお願いします。 特定の範囲のセル範囲(I7:M29)の表示形式が数値、-1234 文字色赤となっています。 それを 特定のセル範囲に数値を入力し終わって セル範囲のあるセルを選択した状態で あるコマンドボタンをクリックしたら、そのセルの表示形式を(1234) 文字色赤 としたいのですが また あるコマンドボタンをクリックしたら  特定の範囲(I7:M29)を最初の状態、 表示形式 -1234 文字色赤にしたいのですが マクロでの使用は どういったコードが 考えられますでしょうか?