• ベストアンサー

エクセルで・・

エクセルのマクロでuserformを作成時いくつかのテキストボックスを作ってセルをリンクさせました。1つのテキストボックスに値を入力して他のセルの値をリンクしているテキストボックスに表示させる事は出来ますか?

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

  • ベストアンサー
  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.2

良く解らないのですが、、、 セル(仮にA1)とリンクしたテキストボックス(B)があり、別のテキストボックス(C)に入力した値を(B)に表示するなら、リンクしたセル(A1)の値も変わる事になりますがそれで良いの? UserFormにTextBox1,TextBox2を置き、UserFormモジュールに下記をコピペして実行します。 TextBox2に入力すると、TextBox1とアクティブシートのセルA1が変化します。 '-------------------------------------------------- Private Sub UserForm_Initialize()   TextBox1.ControlSource = ActiveSheet.Name & "!A1" End Sub '-------------------------------------------------- Private Sub TextBox2_Change()   TextBox1.Value = TextBox2.Value End Sub

tsurushin
質問者

お礼

ありがとうございました。参考になりました。

その他の回答 (1)

回答No.1

>エクセルのマクロでuserformを作成時いくつかのテキストボックスを作ってセルをリンクさせました。 こんな感じですか? Private Sub UserForm_Initialize()   Me.TextBox1 = ThisWorkbook.Worksheets(1).Cells(1) End Sub もしそうなら、 >1つのテキストボックスに値を入力して他のセルの値をリンクしているテキストボックスに表示させる事は出来ますか? 同じことだと思うのですが。。。 Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)   ThisWorkbook.Worksheets(1).Cells(1) = Me.TextBox1 End Sub 随時更新なら、テキストのチェンジイベントを利用するなど、タイミングを見計らえばよいかと。。。

tsurushin
質問者

お礼

ありがとうございました参考になりました

関連するQ&A

  • エクセルVAB UserForm間の移動ぢょ里

    エクセルのVBAにて UserForm1内のテキストボック1の値をコマンドボタン1 クリック時に同時に開いているUserForm2のテキストボックス2に 入力するようにしたいのですがどの様に書き込めば宜しいでしょうか?

  • エクセルのユーザーフォームについて

    エクセルマクロのユーザーフォームのテキストボックスに セルの値を表示する方法で質問です。 ユーザーフォームを表示するとその時点での セルの値はテキストボックスに表示されているのですが ユーザーフォームを表示したまま 別のブックのセルを選んだ際に そのセルの内容がテキストボックスに表示されるようにしたいです。 ボタンや、なにかをするわけではなく 自分で任意のセルを選択したら、という事です。 ユーザーフォームには selectionchange などがないのでどうすれば良いかわかりません。 宜しくお願いします。

  • ユーザーフォームにデータを入力

    「開発」→「Visual Basic」→「フォーム」の「UserForm1」をクリックして表示されるUserFormに何個かのテキストボックスを作成しています。 そのテキストボックスに入力するデータをワークシートにあるデータを自動的に入力( 表示)させる方法はありませんか? ちなみに、ワークシート上でセルをクリックするとそのワークシート上にデータが自動的に入力されたUserFormが表示されるようにはしています。 今回の質問は、「開発」→「Visual Basic」→「フォーム」の「UserForm1」をクリックして表示されるUserFormのテキストボックスのことです。(この画面では、手入力しかできないのでしょうか?) Excel 2013 です。 よろしくお願いします。

  • エクセルVBAマクロで、一度テキストポックスに入力した値がコピーされて

    エクセルVBAマクロで、一度テキストポックスに入力した値がコピーされてしまう VBAマクロ初心者です。 エクセルVBAマクロで、以下の様なプログラムを作成し計算させていますが、 一度入力した値がテキストポックスに残ってしまい、なんとかならないかなと 思っています。 (1)複数シートにそれぞれコマンドボタンを配置し、クリックすると同じユーザー フォームが立ち上がるようになっています。 (2)そのユーザーフォーム内に、テキストボックスが複数あり、それぞれ値を入力 して計算スタートさせると、ワークシートの1行目から数千行目まで計算して 各行に計算結果を表示します。 (計算は、既に各行に入力済みのデータとこのテキストボックスの値を元に算出されます) (3)次に、別のシートでコマンドボタンをクリックし、ユーザーフォームを立ち上げると、 前のシートで入力した値がそのまま各テキストボックスに入ってしまいます。 (これは、必ず起こる訳ではなく、時々起こるのですが、起こる場合は、コマンドボタン をクリックしてからユーザーフォームが立ち上がるまでの時間が若干短い感じがします) ※一度、上記の計算をさせるとテキストボックスの値がそのシートの特定のセルに入り、 次回ユーザーフォームを立ち上げた際に、テキストボックスに入るようになっています。 (Private Sub UserForm Initialize を使っています) パソコンの構造を、私はよく知らないのですが、おそらく、一度テキストボックスに値 を入力して計算させると、どこかのメモリにそれが残っていて、次にユーザーフォーム を立ち上げた際にそれが入ってしまうのかな、と思っています。 (ただし、もし前の値が入ってしまったとしても、一度そのユーザーフォームを消して から、再度立ち上げると、正常な値(そのシートの特定のセルを参照)が必ず入ります) 何か、プログラムにより、このメモリ?を消す?、あるいはうまく解決する方法など 考えられませんでしょうか? もし、詳しい方がおられましたら、御教示いただけませんでしょうか。 よろしくお願いいたします。

  • エクセルVBAのファイル保存(日付のスラッシュ)

    ユーザーフォームのコンボボックス(年月を選択)の値をセルC2に入力し、 そのC2セルの入力内容を元にファイル名を付けて特定の場所に保存するマクロを考えています。 ※↓コンボボックスの値を元にC2セルに年月を入力する。 With Worksheets("sample_list") .Cells(2, 3).Value = UserForm1.ComboBox1.Text & "年" & UserForm1.ComboBox2.Text & "月" .Cells(2, 3).Font.Size = 16 .Cells(2, 3).Font.Bold = True 上記マクロにより C2セルには2021年11月 と表示されます。 実際の値は2021/11/1になっているようです。 ※↓ファイルの保存 その後 ネットワーク上のNASの共有フォルダに、 SavePath = "\\192.168.11.252\Share\マクロ生成データフォルダ" Nengetsu = Range("C2").Value Application.DisplayAlerts = False ActiveWorkbook.SaveAs _ Filename:=SavePath & "\データ_" & Nengetsu, _ FileFormat:=xlOpenXMLWorkbook Application.DisplayAlerts = True ActiveWorkbook.Close として保存しようとすると、 C2の値に 「2021/11/1」 の 「/」が入ってしまうために うまく保存することができませんでした。 そこで 文字列として入力したいので、 下記の様に変更してみましたがダメでした。 .Cells(2, 3).Text = UserForm1.ComboBox1.Text & "年" & UserForm1.ComboBox2.Text & "月" 2021年11月とセルに入力すると、日付として取り扱われるため うまくいかないと推測しましたが、 どのようにすれば、 日付として扱われないで、 保存することができますか? よろしくお願いします。

  • Excelグラフ上の表示形式の設定方法

    お世話になります。 Excelのグラフ上にテキストボックスを挿入し、そこにセルの値をリンクしています。テキストボックスに表示されている値に、表示形式を利用して単位を表示したいと思います。 その方を法教えてください。 よろしくお願いいたします。 Excel 2016を使用しています。

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

    エクセルVBAで、シート上のボタン(フォーム)をクリックすると、UserForm1が表示されてその中のTextBoxに別のシートのセルに入力したいる値を表示させたくて、以下のようにボタン(フォーム)にマクロを入力したのですが、エラーがでてきてうまくいきません。 入力したマクロが間違っているのでしょうか? Sub ボタン1_Click() UserForm1.Show UserForm1.TextBox1 = Sheets("入力").Ranges("D11").Value End Sub すみませんが、ご存知の方、教えてくださいませんか?

  • テキストボックスの書式について

    例えばセルA1の書式が、分類:日付、種類:3月14日とします。(数字は半角) この場合、セルA1に03(全角)月14(半角)日と入力しても、3月14日(数字はすべて半角)と表示されます。 マクロを作成しているのですが、セルA1とテキストボックスの書式がどうしてもうまくいきません。 セルA1はUserform1内のTextbox1の値を取得します。 しかし、Textbox1の値をセルA1へ表示させると、セルA1と同じ書式に表示されません。 テキストボックスの値は文字列として扱われているようです。 Textbox1に03(全角)月14(半角)日と入力しても、3月14日(数字はすべて半角)と表示される方法はありませんか?

  • Excel VBA 別ブックを開かずに転記

    Excel2007のユーザーフォームについて教えてください。 ユーザーフォームを以下のように作成しました。 ■テキストボックス6つ テキストボックス2→件名 テキストボックス3→数 テキストボックス4→名前 テキストボックス5→備考1 テキストボックス6→備考2 ■コマンドボタンが1と3の2つです。 コマンドボタン1→転記と印刷 コマンドボタン3→終了 ■シートの構成  sheet"作成と一覧"   1行目を以下の項目で使用しています。  A1→番号(テキストボックス1を表示)  B1→件名(テキストボックス2を表示)  C1→数(テキストボックス3を表示)  sheet"印刷"  A1→番号(テキストボックス1を表示)  A2→件名(テキストボックス2を表示)  B2→数(テキストボックス3を表示)  A3→名前(テキストボックス4を表示)  A4→備考1(テキストボックス5を表示)  A5→備考2(テキストボックス6を表示) テキストボックスに入力した値を2つのシートにそれぞれ転記して、 シート"印刷"を2部印刷しています。 ここまで以下のコードで行いました。 Private Sub CommandButton1_Click() '入力値を作成と一覧シートに転記 行 = ActiveCell.Row 列 = ActiveCell.Column Cells(行, 列) = UserForm1.TextBox1.Value Cells(行, 列 + 1) = UserForm1.TextBox2.Value Cells(行, 列 + 2) = UserForm1.TextBox3.Value '入力値を印刷シートにに転記 Worksheets("印刷").Range("A1") = UserForm1.TextBox1.Value Worksheets("印刷").Range("A2") = UserForm1.TextBox2.Value Worksheets("印刷").Range("B2") = UserForm1.TextBox3.Value Worksheets("印刷").Range("A3") = UserForm1.TextBox4.Value Worksheets("印刷").Range("A4") = UserForm1.TextBox5.Value Worksheets("印刷").Range("A5") = UserForm1.TextBox6.Value 部数 = 2 Worksheets("印刷").PrintOut Copies:=部数, Collate:=True UserForm1.TextBox1.SetFocus Cells(行 + 1, 列).Select End Sub Private Sub CommandButton3_Click() '終了ボタンで値をクリアしてウィンドウを閉じる Dim Ctrl As Control For Each Ctrl In Controls If TypeName(Ctrl) = "TextBox" Then _ Ctrl.Value = "" Next Ctrl Unload Me End Sub 教えて頂きたい事なのですが・・・ コマンドボタン1の入力値を作成と一覧シートに転記の所なのですが、 アクティブセルではなく、常にA列の最後の値の次の空白行に転記するようにしたい場合、 どのように書き換えればいいのでしょうか? もう一点ですが、 別ブックにテキストボックス1から6が入力された一覧があります。 この別ブックを開かずに、 テキストボックス1に入力された番号を探して、 テキストボックス2から6に表示されるようにしたいのです。 うまく説明できないのですが・・・ 別ブックの名前は"たちつ" 別ブックは、あいうサーバーの かきくフォルダの中のさしすフォルダです。 ブック"たちつ"に"一覧"というシートがあります。 一覧のシートのD列の3行目以降には番号が入力されており、日々増えています。 テキストボックス1に入力された番号を、 一覧のD列から探し、 I列の値をテキストボックス2へ K列の値をテキストボックス3へ L列の値をテキストボックス4へ M列の値をテキストボックス5へ J列の値をテキストボックス6へ転記させたいのです。 同じブックの別シートを参照するときには Application.VLookupで出来たのですが、 マクロの記録でやってみても、解決できませんでした。 コードをご覧いただいてお分かりの通り、 VBA超初心者です。 ネットを見ながら試行錯誤している状況です。 コードの間違い等あるかもしれませんが、 ご教示よろしくお願いいたします。

  • エクセルVBA/マルチページ/ページ切り替え時

    エクセル2000使用 ユーザーフォーム(UserForm1):マルチページ(MultiPage1)でページを5つ 作成。各ページにはテキストボックスとコマンドボタンを配置。 テキストボックスに値入力後、コマンドボタンをクリックするとテキストボック スの値をクリアするように設定。 テキストボックスに値入力後、コマンド実行前にページを替えた時、テキストボ ックスの値をクリアしたいのですが、どのようにすればよろしいのでしょうか。 類似する過去の質問を見てもよくわからなかったので、ぜひご回答のほどよろし くお願い申上げます。

専門家に質問してみよう