• ベストアンサー

Excelでの複数シートへの値の入力

おはようございます。 Excel2000で複数のシートを選択した状態でセルに値を入力すると、他のシートの同じセルに内容が入力されますよね。 この機能の名称はわかりませんが・・・(^_^;) これをヒントに「フォーム内にあるTextBoxに入力された値を各シートのセルに入力しよう」というVBAのソースを作ってみましたが、 実行してみると選択されている1枚目のシートにしか値が入力されません。 汚いソースをみなさんに見せるのは恥ずかしいのですが、 是非実現したいので、どこが間違っているか指摘をいただけると幸いです。 やろうとしていること: フォームのテキストボックスに値を入力し、 コマンドボタンを押すとシートを複数枚選択し、 各シートのセル”A1”(AからDまでを結合)に値を入力する。 ******************************************* Private Sub CommandButton1_Click() 'テキストボックスの値取得と、店名の合成 Dim myTmei As String Dim myTmei2 As String myTmei = TextBox1.Text myTmei2 = "店名" & myTmei 'シートの選択 Sheets(Array(5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46)).Select '値の入力 Range("A1").Select Range("A1").Value = myTmei2 End Sub ****************************************** 結果を見ると、シート自体は選択できているのですが、 その中でも「アクティブになっている(?)シート(1枚目)のセルだけに値を入力しなさいよ。」と書いてしまったようで、 「全てのシートのセル”A1”に入力しなさい。」という部分が書けていないのだと思うのです。 Selectだけじゃ、ダメなのかな・・・ どうかよろしくお願いします。

  • kenton
  • お礼率74% (110/148)

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

  • ベストアンサー
回答No.1

Range("A1").Value = myTmei2 の代わりに ActiveCell.FormulaR1C1 = myTmei2 を入力してみてください。 これで上手くいくと思いますよ。

kenton
質問者

お礼

早々の回答ありがとうございます。 今確認したところ、できました!(T_T) ”FormulaR1C1”については、まだよくわかっていなかったので、この機会に理解しようと思います。 今後も、何かの機会には回答をいただけると幸いです。 ありがとうございます。

その他の回答 (1)

  • taknt
  • ベストアンサー率19% (1556/7783)
回答No.2

複数のシートの同じ箇所のセルに入力する方法は、 入れたいシートを選択して(3つだったら 3つとも選択する) セルに入力します。 あとは、マクロの記録で これと同じことをやって保存してあげればいいのです。

kenton
質問者

お礼

回答ありがとうございます。 takntさんの仰ることを実際にやってみたのですが、 ひとつひとつをよく検討せずにいました。 やはりもっといろいろと試してみるべきだったのかもしれません。 今後も、何かの機会には回答をいただけると幸いです。 ありがとうございます。

関連するQ&A

  • Excel ユーザーフォームの入力値をシートに転記

    Excelでユーザーフォームを作りました。 ユーザーフォームには、テキストボックスを2個、ボタンを1個("記入"という文字が入っています)置いてあります。 テキストボックスに入れた数値をSheet1のセル"C24","C25"に転記したいので、ユーザーフォームのコードを次のようにしましたが、エラーメッセージは出ないかわりに何も動いてくれません。 「どこ」と「なに」が違いどうするのが正しいのか教えて下さい。よろしくお願いします。 Private Sub Tbox1_Change() a = Tbox1.Value End Sub ---------------------------- Private Sub Tbox2_Change() b = Tbox2.Value End Sub ---------------------------- Sub 記入Button_Click() '入力値をSheet1に転記 Dim a As Range Dim b As Range Sheets("Sheet1").Select Set a = Range("C24") Set b = Range("C25") End Sub

  • Excel VBA でテキストボックスの値をセルA列から検索

    いつもお世話になります。 Private Sub CommandButton3_Click() Dim 行 As String Dim 列 As String Dim 最終行 As String Dim 検索行 As String Dim メッセージ As Integer Dim 一致 As Range Dim myNO As Variant Dim i As Long Sheets(3).Select 最終行 = Range("A2").End(xlDown).Offset(1).Select 行 = ActiveCell.Row 列 = ActiveCell.Column myNO = TextBox2.Value 検索行 = Range("A2").End(xlDown).Select ※・・・Set 一致 = Range("A2:検索検").Findwhat:=TextBox2,lookat:=xlWhole) If 一致 Is Nothing Then MsgBox "データがありません。新規コード入力します。" Cells(行, 列 + 0) = UserForm1.TextBox2.Value Cells(行, 列 + 1) = UserForm1.ComboBox7.Value Else i = Cells(行 - 1, "A") Cells(i, 列 + 0) = UserForm1.TextBox2.Value Cells(i, 列 + 1) = UserForm1.ComboBox7.Value End If End Sub 「エラー1004'Range'メソッドは失敗しました'Global'オブジェクト」とでます。※印が黄色になっています。 ユーザーフォーム1のテキストボックスの値をシート3のA列から検索して、一致すれば、A列の一致セルに上書き入力して、一致が無い場合はA列の空白セルに追加入力したいのです。よろしくお願い致します。

  • エクセル VBA シートの選択 

    windows XP でエクセル2000を使っています。 Sub aaa() Sheets("Sheet1").Select Dim a As String a = Cells(2, 4) Sheets(a).Select Range("A1").Select End Sub というマクロだと セルに入っている値のシート名を探してくれます。 ですが Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range) If Intersect(Target, Range("B11:b683")) Is Nothing Then Exit Sub Worksheets("Sheet1").Range("C2").Value = Target.Value Dim b As String b = Range("C2).value (←ここをcellsにしてもダメ) Sheets(b).Select Range("A1").Select End Sub これだとsheets(b)を選びません。Sheets(b).Selectのところが黄色くなります。 何処が間違えているのでしょうか。 全くの素人ですが、仕事で必要に迫られています。 わかりやすく回答・解説くれると助かります。

  • エクセル 

    フォームを作成し、そこで入力したものをシート2へ入力されるものを作りました。 テキストボックス1に入力したものは、A1へ、テキストボックス2に入力したものはB1へ・・・というような感じです。 お聞きしたいのは、2回目以降にフォームを使って入力した時、下記の式では、A1、B1に上書きされてします。 これを、2回目はA2、B2・・・のように、下方に蓄積していくには、どんな式に変更したらよいでしょうか。 教えてください。 Private Sub CommandButton1_Click() Sheet2.Range("A1") = TextBox1 Sheet2.Range("B1") = TextBox2 Sheet2.Range("C1") = TextBox3 Sheet2.Range("D1") = TextBox4 Sheet2.Range("E1") = TextBox5 Unload Me End Sub

  • excel VBA コンボボックスでシート選択後エラー

    どなたかご教授願います。 ユーザーフォームにコンボボックスを配置し、ブック内のシートすべて選択できるようにしてます。選択後シートに移動するのですが、同じユーザーフォームのテキストボックス等に入力した後、コマンドボタンをクリックするとエラーとなります。しかしテキストボックス等の値は間違いなく入力されています。よろしくお願いします。 Private Sub ComboBox1_Change() → Sheets(Me.ComboBox1.Value).Select       この部分が黄色になってしまいます End Sub Private Sub CommandButton1_Click() Dim myRow As Long ActiveSheet.Select myRow = Range("B65536").End(xlUp).Offset(1, 0).Row '各テキストボックの値をセルに入力 Cells(myRow, 2).Value = TextBox1.Value Cells(myRow, 3).Value = TextBox1.Value Cells(myRow, 4).Value = ComboBox2.Value Cells(myRow, 6).Value = TextBox2.Value Cells(myRow, 7).Value = TextBox3.Value Cells(myRow, 8).Value = TextBox4.Value 'Cells(myRow, 9).Value = TextBox5.Value '書式設定 Cells(myRow, 2).NumberFormatLocal = "m" Cells(myRow, 3).NumberFormatLocal = "dd" Cells(myRow, 6).NumberFormatLocal = "#,###" 'セルに入力が各テキストボックの値をクリア ComboBox1.Value = "" ComboBox2.Value = "" TextBox2.Value = "" TextBox3.Value = "" TextBox4.Value = "" 'フォーカス移動 ComboBox2.SetFocus End Sub

  • Excel オーダーフォームのテキストボックス入力について

    オーダーフォームを作成し、テキストボックスを2つ以上作成し、コマンドボタンを1つ作りました。 同じ行ですべてを入力できるようにしたいのですが、どうしたらよいでしょうか? テキストボックス1の値を入力するためのコマンドは、最下位の行を探してそこに入力するようなコマンドを作っているはずです…その横の列にテキストボックス2の値を入力し、その横の列にテキストボックス3の値を入力し…というようにしていきたいのです。 Private Sub CommandButton1_Click() Dim lRow As Long With Worksheets("sheet1") lRow = .Range("A" & Rows.Count).End(xlUp).Row .Range("A" & lRow + 1).Value = TextBox1.Value End With TextBox1.Value = "" TextBox1.SetFocus End Sub

  • ユーザーフォームの入力をシートに反映

    かなりの初心者(始めて3日)ですが宜しくお願いします。 しかも2点あります。。。 (1)ユーザーフォームにある大量のテキストboxないし、optionboxをエクセルのsheet2に反映させたいです。 で、地道に With Sheets(2) .Range("A22").Value = OptionButton184.Value .Range("A23").Value = OptionButton185.Value .Range("A24").Value = OptionButton186.Value .Range("A25").Value = OptionButton187.Value とAの行を手で直していたのですが、途中で間違えて、手直しは断念しました。そこで、思いついたのが、「ひとつ下のセルに記述する」ということでした。 で、本を見ながら考えたのが、 With Sheets(2) Range("A1").Select ActiveCell.Offset(1, 0).Value = TextBox1.Text ActiveCell.Offset(1, 0).Value = TextBox2.Text ActiveCell.Offset(1, 0).Value = TextBox3.Text まずA1を指定させて、下にずらしていけるかと思ったのですが、全然上手くいきません。しかもsheet1のA1を選択してるようです。どうしてでしょうか??? (2)フォームOKボタンを押して、上記の処理をしても、フォームに記入したものが次にフォームを開いた時に消えていないように、 Me.Hide End Sub で終わらせたのですが、次に開いても残っていません。 無知でお恥ずかしいですが、宜しく御願い致します。

  • エクセル2000のマクロにおける、複数シート間のコピー&ペーストについて

    閲覧ありがとうございます。 現在、エクセル2000(OS、WIN2KPRO)を用いて、以下のような仕様のマクロを組もうとしています。 1.Sheet1のCommandButton1から実行する。 2.Sheet2のA1セルから、O?セルまでのデータの入っているセルをコピーし、Sheet1のB4セル以下にペーストする。 3.O?セルの?は1000以下の値で変化する。 4.Sheet2のF列には、ユニークキーが入力される為、必ず値が入力されている。 上記の仕様に従い、以下のようなマクロを組みましたが、 > Worksheets("Sheet2").Range(Cells(1, 1), Cells(Line_Num, 15)).Select のラインでエラーが発生します。 激しく独学の為、汚いソースですみません^^; **************************************** Private Sub CommandButton1_Click() Worksheets("Sheet2").Select Worksheets("Sheet2").Activate Dim Line_Num Line_Num = 1000 - WorksheetFunction.CountBlank(Range("F1:F1000")) Worksheets("Sheet2").Range("A1").Select Worksheets("Sheet2").Range(Cells(1, 1), Cells(Line_Num, 15)).Select Worksheets("Sheet2").Range(Cells(1, 1), Cells(Line_Num, 15)).Copy Worksheets("Sheet1").Select Worksheets("Sheet1").Activate Range("B4").Select ActiveSheet.Paste End Sub

  • TextBoxの値を複数シートのセルに記入する

    よろしくお願いします。 TextBoxの値を複数シートのセルに記入するようにしたいのですが 一つのシートにしか記入されません。 醜い構文ですみません。 Private Sub CommandButton1_Click() Dim a As Long Dim b As Long Dim f As Long Dim h As Long Dim c As Range Dim d As Range Dim e As Range Dim g As Range With Worksheets(Array("駐車状態", "材料", "外壁1", "外壁2", "屋根1")).Select Set c = Cells(1, 2) For a = 1 To 140 Step 7 Set c = Union(c, Cells(a, 2)) c = TextBox1.Value Next c.EntireRow.Select Set d = Cells(1, 4) For b = 1 To 140 Step 7 Set d = Union(d, Cells(b, 4)) d = TextBox1.Value Next d.EntireRow.Select Set g = Cells(2, 2) For h = 2 To 141 Step 7 Set g = Union(g, Cells(h, 2)) g = TextBox2.Value Next g.EntireRow.Select Set e = Cells(2, 4) For f = 2 To 141 Step 7 Set e = Union(e, Cells(f, 4)) e = TextBox2.Value Next e.EntireRow.Select End With End Sub

  • エクセルのユーザーフォーム上のテキストボックスと外部データ取込機能につ

    エクセルのユーザーフォーム上のテキストボックスと外部データ取込機能について 前提条件)1つのフォームにComboboxとTextboxが5列15行に整列して配置してあります。 例えば、TextBox1~3にそれぞれ入力し、その条件から外部データ取込機能で抽出される値をTextbox4へ表示させる試みを行っています。処理としては、TextBox1~3に入力した値は特定シートのセルA1~C1にセットします。 セルA1~C1にセットされることにより、外部データ取込のパラメータ設定で「セルの値が変わる時に自動的に更新する」としてあるため、3つの条件よりある値が特定シートのセルA2に抽出され、そのセルの値をTextbox4へ返すことをしようと挑戦中です。そこでつまづいてしまい質問させて頂きます。フォームを起動しTextboxから入力した内容が特定シートのセルにセットされることは確認できたのですが、外部データ取込機能で値は抽出はされているようなんですが、特定シートのセルA2には表示されていません。フォームを閉じるとセルA2に呼び出されてきた値が確認できます。フォームが開いているとシートをActiveにしても(VBAの記述にて)更新されないんでしょうか?フォームが起動されたまま、シートで展開している動きをそのままフォームの別texeboxへ戻り値として利用する方法を教えて下さい。waitやActiveなどいろいろ試してみました。下記にはActiveの記述はありませんが、色々試してみて上手くいきません。 (参考) Private Sub TextBox23_Exit(ByVal Cancel As MSForms.ReturnBoolean) Sheets("Meisai").Range("F1") = TextBox23.Value waitTime = Now + TimeValue("0:00:02") Application.Wait waitTime Sheets("Hijyu").Select TextBox27.Value = Sheets("Hijyu").Range("A2").Value End Sub よろしくお願いします。

専門家に質問してみよう