• ベストアンサー

VBA初心者

いつも大変参考にさせて頂いております。 Excel2019にて、マクロボタンを押すと 文字を入力するボックス(ボックスは2つ以上必要)が現れ、そのボックス内に文字を入力すると 所定の別シートの指定セルに文字が入力されるようにしたいのです。 指定セルに直接書き込む事も考えましたが、私で無い人も触るため分かり易く 書き込む箇所が固定されるような方法がよいかと思い、上記の方法を思いつきました。 VBA初歩の質問で申し訳ありませんが、ご教授頂けますと幸いです。 他の方法でも、こういった方法があるなど導いていただくのみでも幸いです。

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

  • ベストアンサー
  • kkkkkm
  • ベストアンサー率65% (1618/2457)
回答No.2

以下のページを参考にしてください。 第7回.テキストボックス(TextBox)の値をセルへ https://excel-ubara.com/excelvba3/EXCELFORM007.html .Cells(lastRow, 1).Value = Me.txtコード.Text のところを テキストボックスの名前を変えなければ TextBox1とかTextBox2とかになりますから A1に入力させたければ .Cells(1, "A").Value = Me.TextBox1.Text とか .Range("A1").Value = Me.TextBox1.Text にしてください。 ユーザーフォームの作り方は以下のページから Excelユーザーフォーム入門 https://excel-ubara.com/excelvba3/

hiyokoou
質問者

お礼

ご回答いただきありがとうございます。 フォームは敷居が高い気がして使う事を避けていました。 しかし、いざ見て触ってみて新しく引き出しを増やす事が出来ました。 今回は 私以外のものが触るため、フォームに必要情報を入力する という手間が上手く効きつかう人間が長く使ってくれるような気がします。 また見掛けて頂いた際はよろしくお願いします。

その他の回答 (4)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.6

この質問には、>「に文字が入力されるように」、のデータの中身の類型が書いてないのが、欠点です。 (1)平文的な文章 や、あえて下記(2)のケースでも直接入力させるもの (2)箇条書き的な、数個の項目のどれか1つを選ぶようなもの    場合によっては、2段階以上の決定を案内するもの。 ーー (2)ならコンボボックスや、リストボックスその他のコントロール(部品)を使うことが多い。 (VBAでも)入力規則の「リスト」を使う手もあります。 またユーザーフォームの利用もあり得るが、本件では大げさすぎるかと。 ーー >私で無い人も触るため分かり易く 書き込む箇所が固定されるよ 人間の能力は、優れていて、2,3回目利用以後は、案内は「うるさく感じる」に変化するのが普通です。  VBAの勉強だけでなく、こういう人間心理的なことも、よく考慮するべきでしょう。 ーー 小生は、簡単に、下記を考えてみました。 さらにボタンのタイトルやボタンの配置場所も(自然に目が行くように)十分工夫すべきでしょう。 Sub ボタン1_Click() MsgBox "Sheet1のD2セルに,XXXデータを入力してください """ Worksheets("Sheet1").Range("D2").Select End Sub ーー まず、そのシートを開いたときに必ず入れるべきデータなら、シートの Private Sub Worksheet_Activate() End Sub を使う方法なども思いつきます。

hiyokoou
質問者

お礼

ご回答と、質問文に対してのご意見もいただき誠にありがとうございます。 ボックスの使い方なども参考になります。ありがとうございます。 私も使う人間がどのように扱うか・継続して使えるかの心理的な部分が大変重要な気がしています。 また、見掛けて頂いた際はご助力いただけると幸いです。

  • kkkkkm
  • ベストアンサー率65% (1618/2457)
回答No.5

単純なユーザーフォームを作るのが面倒という意見を初めて見ましたが、面倒でしたらシートの保護で入力するセル以外は選択できないようにしておけばいいですね。

hiyokoou
質問者

お礼

追加の こういった方法もあるよ という情報ありがとうございます。 大変参考になります。先ほど頂いた方法・参考サイトは読ませて頂いており扱えるようになってから、お礼をさせて頂く予定でおります。 私にとっては色んな方法がある方が助かりますので、他の方法の考えも残して頂けると幸いです。

  • sknbsknb2
  • ベストアンサー率38% (1127/2911)
回答No.4

自分なら、フォームとか作るのが面倒なので、下記のようにします。 (1) 特定のシートの特定のセル(左上とかのわかりやすい場所)に値を入れてもらうことにする (2) (1)で入力してもらうセルから必要なセルへのコピー作業をマクロで記述する(マクロ記録でOK) (3) (2)のマクロをボタンに割り当てて、(1)の入力後に押してもらうようにする

hiyokoou
質問者

お礼

ご回答いただきありがとうございました。 フォームを用意しない分、用意する側も操作する側も工程が減り便利ですね。。 今回は 私でない人間が触る場合も考慮して考えてみます。 また見掛けて頂いた際にご教示頂けると幸いです。

  • kkkkkm
  • ベストアンサー率65% (1618/2457)
回答No.3

No.1の補足です。 InputBoxという方法もありますが必要なボックスが複数ですし、作業する人が不慣れな方だとかでしたらユーザーフォームがいいと思います。 第24回.インプットボックス(InputBox関数) https://excel-ubara.com/excelvba1/EXCELVBA324.html

hiyokoou
質問者

お礼

ありがとうございます。

関連するQ&A

  • エクセルvba初心者です・・・

    エクセルvba初心者です・・・ シート1にあるひとつのセルをコマンドボタンを押した時にそのセル内の文字列をシート2にかいていくようなプログラムをつくりたいです。 例えば シート1のセルに文字入力→”田中”→登録ボタンおす→シート2のセルA1にはいる シート1のセルに文字入力→”竹山”→登録ボタンおす→シート2のセルA2にはいる                  ・                  ・                  ・ というようになるコードわかる方いたら教えてください。おねがいします。

  • VBA初心者

    いつも大変 たすけられております。 分かる方がみえましたらご教授いただけますと幸いです。 行いたい事 Excelで特定のシート(固定 仮に5sheet)のみを新しいブックとして保存したい。その際、ファイル名はユーザーが手入力で決められるようにしたい。 イメージでは、マクロボタンをクリックすると フォームが開き、その中にはテキストボックスがあり、その中に文字が新しいブックのファイル名となるように出来ますでしょうか。

  • VBAでシェープ

    例えばA1セルに”えくせる”と入力されていたとします。 ここでマクロを実行すると、A1セルにぴったり合うぐらいの大きさでテキストボックスが作成され、A1セルの”えくせる”という文字がテキストボックスに入力されるというマクロのコードが知りたいのですが、何回思考してもうまくいきません。とある方のホームページでダウンロードしたワークシートに、同じようなマクロがあったので技術的には可能と思うのですが。 ちょっと難しいと思うのですが、どなたかVBAのプロの方がおられたら教えて頂きたいです。

  • エクセルVBA初心者です。マクロを組んでください。

    エクセルVBA初心者です。組んで欲しいマクロがあります。 Sheet 1に13桁を入力するセル sheet 2に検索したいデータ 手順としては、 Sheet 1のセルにデータを入力 →13桁以上でマクロが開始(されるように設定します) →Sheet 1のセルと同じ数列をSheet 2の列Aから検索 →該当のセルを含む行をSheet 3にコピー →Sheet 1の入力セルの少し下にもコピー (確認用) というのを一回一回ずつやりたいです。 できれば作業中マウスやキーボードを触りたくないので、そのために、マクロの終わわりには入力セル内の消去、マクロの始まりには確認用でコピーした行の削除もつけて下さい。 検索するSheet 2には同じデータが含まれているので、出来ればひとつずつSheet 3にコピーしたいので組み込んで頂けると幸いです。 よろしくお願いいたします。

  • VBAからEXCELの新規ファイルを作成する

    VB6.0 Excel2000を使用しています。 VBAからEXCELファイルを参照する方法は前回教えていただきましたが 新規にEXCELファイルを作成する方法がわからないので教えてください。 【やりたいこと】 ・ファイル名は、ダイアログボックスから入力され、フルパスで変数に  格納されています。 ・シート名は固定文字で指定します。 (↑ここまではできています) (↓ここからわかりません) ・セルの内容を編集したあと、指定のファイル名・シート名で保存したい よろしくお願いします。

  • エクセルVBA初心者です。

    エクセルVBA初心者です。 「テキストボックスとコマンドボタンを使って、シートのA列にあるセルの文字列を左から検索する」という事をやりたいのですが、うまくいきません。お教えください。ちなみにCtrl+Fではなく、VBAで。 Private Sub TextBox1_Change() Dim R As Range With ActiveWorkbook.Worksheets("Sheet名") Set R = .Columns(3).Find(Me.TextBox1.Value) End With If R Is Nothing Then MsgBox "該当セルなし" Else R.Activate End If Set R = Nothing End Sub としましたが、テキストボックス入力+Enterで出来てしまい、コマンドボタンが機能しません。また、BackSpaceやDelをすると、他のセルに飛んでしまいます。????

  • エクセルVBAでのチェックボックス操作

    エクセルを利用した、VBAで困っています。 所定のsheetに埋め込まれたチェックボックスに対して、 別sheet内のセルの値を参照し、結果をオン、オフという 操作を行いたいのですが、チェックボックスに対するVBAでの指定方法 が分かりません。 イメージとしては (1)Sheet1内にチェックボックスがある。  該当チェックボックスは7個のチェックボックスで構成されており  それぞれにchb1~chb7といったオブジェクト名がある。 (2)sheet2のA1セルに特定の値が入っていればチェックボックス(chb1)  がオン値がなければオフのまま (3)sheet2のB1セルに特定の値が入っていればチェックボックス(chb2)  がオン値がなければオフのまま という感じです。 先方より指定された様式なのでsheet1の内容や書式を変更することが出来ないので、なんとか埋め込まれたオブジェクトを操作したいのですが・・・ 良い方法があれば教えてください。

  • エクセルのマクロで入力文字を一文字ずつ並んだセルに入れる

    エクセルマクロ超初心者です。 エクセルVBAでユーザーフォームを作成しました。 テキストボックスに入力した文字列を「登録」ボタン押下後、エクセルシートのセルに一文字づつ入るようにするにはどうすれば良いでしょうか? 例えばテキストボックスに「kohiro」と入力するとエクセルのsheet1のA1「k」、B1「o」、C1「h」、D1「i」、E1「r」、F1「o」となるようにしたいのです。入力する文字数は0~30文字までで、その都度長さは変わります。どうやって、文字をばらせばいいのか、またどうやって可変長の文字列を指定したセルに入力すればいいのかわかりません。どうかよろしくお願いいたします。

  • VBAと照合について

    VBAと照合について 下記のような3枚のシート(上からシート1,2,3)をエクセル2007で作成しています。 シート1とシート2は全く同じ内容であるべきものです。 しかし、出所が違うため、両者のシートを照合して もし合っていれば、シート1を印刷したいのです。 なお、ここではあえて、1月4日分の売り上げは、わざと違う値を入力しています。 シート3にマクロのボタンを作成し、VBAで二枚のシートを照合し、メッセージボックスで 合っていれば印刷OK,違っていれば印刷中止にしたいのです。 IF関数までは理解でき、シート3のB2からE4までは=IF(sheet1!B2=sheet2!B2,"","×") 等で処理していて、違っているセルに条件付き書式で×を表示するようにしています。 ただ、関数ではなく、照合から印刷までをマクロで自動処理したいので、VBAコードが知りたいです。 よろしくお願いします。

  • ユーザフォーム(VBA)で入力した内容をシートへコピーするには

    ユーザフォーム(VBA)でテキストボックスとボタンを作成しました。 このテキストボックスに入力した内容をボタンを押すことでシート1のA1セルにコピーしたいのです。こんな簡単な感じなのですが、 プログラムはどのようにしたらよいのでしょうか?教えてください。 それと、このエクセルファイルを開き、マクロを有効にするのボタンを押すと思うのですが、そのときにすでにユーザフォームが表示されているようにしたいのですが・・・どうすればいいのでしょうか? ※できたらでよいのですが、もう一つボタンを作成し『クリア』ボタンということで、テキストボックスに入力した内容だけをクリアさせるボタンも作ろうとおもうのですが、それはどうしたらよいのでしょうか? 困っています。教えてください。

専門家に質問してみよう