• ベストアンサー

エクセルで別Bookのシートの指定セルの値を転記

kkkkkmの回答

  • kkkkkm
  • ベストアンサー率65% (1636/2483)
回答No.1

> 申請書のシートは複数開いている状態 ブックが複数開いているということだとしたら 申請書リストのあるブックの申請書リストシートのシートモジュールに以下のコードを記載してD列にデータを入れてみてください。 申請書シートの名前をSheet1としてますので適宜変更してください。 エラーで止まった場合イベントがオフになったままですので Application.EnableEvents = True をイミディエイトウィンドウで実行しオンにしてください Private Sub Worksheet_Change(ByVal Target As Range) Dim Wb As Workbook If Target.Column <> Range("D:D").Column Then Exit Sub End If Application.EnableEvents = False For Each Wb In Workbooks If ThisWorkbook.Name <> Wb.Name Then With Wb.Sheets("Sheet1") If .Range("G6").Value = Cells(Target.Row, "D").Value Then Cells(Target.Row, "C").Value = .Range("G4").Value Cells(Target.Row, "E").Value = .Range("U4").Value Cells(Target.Row, "F").Value = .Range("U5").Value End If End With End If Next Application.EnableEvents = True End Sub

関連するQ&A

  • エクセルでセル内容を変更したら指定セルが転記される

    いつもお世話になております。 添付のような月々の出納の集計表で、C3(当該月)セルの月が変わったら、集計行(45行目)のE列、H列、J列の値を集計シートの当該月の行に転記したいのですが。 月の合計はSUM()で入っていますので値で貼りつける必要があります。 尚、シートは手入力セル以外は保護がかかっています。(念のため)

  • エクセルの特定セルを別へのブックに行方向に転記

    エクセル2010で、専用フォルダーに入っている複数のエクセルファイルの特定のセル(A1,B2,C3等)を別のブック(まとめ)に行方向に転記したいのですが。 まとめ用のシートの上の行から順に各シートのセル内容を転記していきたいのですが何か方法がありませんでしょうか? 例えば各ファイルに住所、TEL No、名前が決まった書式のセルに入っていて、これが毎月新規データとして追加されるのですが、別のエクセルシートに必要な項目のみ転記して、一覧表を作成したいのです。 現在は、1つずつファイルを開いて、目的のセルのコピペでまとめのシートに貼り付けて作業していますので、これより少しでも簡単な方法があれば教えてください。

  • 別シートに任意のセルを転記する方法について

    縦に6行ずつのデータがあり、これを横1行の別シートに転記する際に、 以前こちらで回答頂いた方法を応用したいと考えています。 =IF(INDEX(Sheet1!$Z:$Z,(ROW(A1)-1)*6+COLUMN(A1))=0,"",INDEX(Sheet1!$Z:$Z,(ROW(A1)-1)*6+COLUMN(A1))) アドバイスのとおり、上記の数式で見事に横にデータが転記できました。社員1人につき6行ずつのデータが縦にならんでおり、これを別の社員1人あたり1行で横に並んだデータにしたいというものでした。 1人目のデータは1行目を1列目に、2行目を2列目に・・・2人目のデータである7行目を1列目に、8行目を2列目に・・・3人目は13行目を1列目に・・・となります。 しかし、順次並べるのではなく、転記の必要にないデータを含むシートの任意のセルを選び、別シートの任意のセルへ転記する必要が生じたため、悩んで路頭に迷っております。。。 例えば、6行ずつのデータのうち、いつも3行目を別シートの5列目に。4行目は転記せずに、5行目を6列目に。また、6行目を7列目に転記せずに10列目に転記する。(8・9列目は、別データを入力するため空白にしたい) そして、社員2人目である7行目からは、上記と同じ規則で転記したい。 などというように、選んで転記する方法は何かありますでしょうか?? =INDEX(Sheet1!$Z:$Z,(ROW(B2)-ROW($B$2))*6+IF(COLUMN()=4,MOD(COLUMN(B2)-1,6)+1,MOD(COLUMN(B2)-1,7))) のようにしても上手くいきません。 何卒宜しく御願いいたします。

  • 別シートの行を選択し対象列を転記するマクロ

    シート2のA~F列までデータがあります。 行数は10,000行です。(月ごとに100行くらい追加されます。) A列は項目がNO.で半角数字が連番で入力されてます。 セルA2→1 セルA3→2 セルA4→3 . . . セルA10000→9999 セルA10001→10000 という感じです。 シート1の セルI9に番号を入力すると シート2のその番号の行のB~F列の値を シート1のJ9~N9列に転記したいです。 例えば シート1のセルI9に100と入力したら、 シート2のA列が100と入力されているセルはA101ですから 101行目となります。101行目の各列の値を転記します。 ↓ シート1のセルJ9にシート2のセルB101の値を転記 シート1のセルK9にシート2のセルC101の値を転記 シート1のセルL9にシート2のセルD101の値を転記 シート1のセルM9にシート2のセルE101の値を転記 シート1のセルN9にシート2のセルF101の値を転記 シート1もシート2もセルの書式設定は標準。 B,E,F列は半角英数字の組み合わせで C,D列は半角数字のみです。 たまにF列に空白がある行があります。 B,F列は数字のみの場合もあります。 B,C,D,F列は数字のみの場合 「数値が文字列として入力されています」 となっています。 マクロで行いたいのですが記述そのものを教えてください。

  • 各ボックスの値を、指定セルに転記したいのですが

    エクセル2007で作成 ・入力シートでユーザーフォーム1を呼出す。 B列の最終行をアクティブセルとする ・コンボボックス1にて部署名を選択。 ・コンボボックス2にて個人名を選択。 Sub ComboBox2_Click() Dim lastRow As Long Dim myLlist As String Dim R As Long myLlist = ComboBox2 With UserForm1 Select Case myLlist Case "○○ △△" ’個人名 .ListBox1.RowSource = "○○!B1:B100" ←B100ではなく、最終行に変更したい End Select End With End Sub ・リストボックス1にて作業名を選択(複数可)後、決定コマンドボタンにて確定。  入力シートのアクティブセルにコンボボックス1の値を転記  右隣セルにコンボボックス2の値を転記  さらに右隣にリストボックス1の値を転記 Sub 決定_Click() ActiveSheet.Unprotect Dim 行 As Long Dim 列 As Long Dim i As Integer Dim LB As String With UserForm1 行 = ActiveCell.Row 列 = ActiveCell.Column UserForm1.ComboBox1.Value = Cells(行, 列) UserForm1.ComboBox2.Value = Cells(行, 列 + 1) With ListBox1 For i = 0 To .ListCount - 1 If .Selected(i) = True Then LB = LB & .List(i, 0) LB = Cells(行, 列 + 2) ←ココを変更したい End If Next i End With End With End Sub 個人名シートの指定範囲は、最終行までとしたい。 転記後、D列の1セルの中に選択した複数の作業名が入ってしまうので、 作業名単位で行を分けたい。 その時、同一部署なら同名をB列の下の行に、 同一人物なら同名もC列の下の行に転記したい。 以上、行いたい事項です。 方法がわからず困っています。 どなたかご教授頂きますよう、宜しくお願い致します。

  • エクセルマクロで指定したセルの値を表示変更し転記

    エクセルマクロで指定したセルの値を表示変更して指定したセルに転記したい セルA列に書式が標準で 20101117と入っています。 これをB列にセルの値も表示も共に11/27としたいです。 (セルの値は2010/11/17でセルの表示は11/27ではまずいです。) A列にデーターがあるまで繰り返したいです。 行数は作業毎で常に違います。 以下の記述では出来ませんでした。 よろしくお願いします。 Sub 日付() 行 = 2 Do If Cells(行, 1).Value = "" Then Exit Do Cells(行, 2).Value = Mid(行, 1,5,2) &"/"& RIGHT(行, 1,2) 行 = 行 + 1 Loop End Sub

  • セルの転記

    EXCELで「累積」というシートのD列で何か値が入っている一番下の行にあるH列のセルに入っている値を「パラ」というシートのC2に転記したいです。 マクロの記載を教えて下さい。 よろしくお願い致します。

  • 色付きセルを別シートに転記するマクロ

    https://kirinote.com/excelvba-anothersheet-multicolor/ 上記URLのサイトを参考に、 Excelブック内の色付きセルを、別シートに転記するマクロを作成したいのですが、わからない部分があるため質問させて頂きます。 ① 'シートを変数へ格納 Set Sh1 = Sheets("Sheet1") この部分ですが、変数「Sh1 」に、一番右(末尾)にあるシートを格納する方法が知りたいです。(一番右のシートは名前が都度変更になるため) ② '3列分ループ For j = 1 To 3 こちらの部分ですが、別シートに転記したいセルの列が E、L、S、Vになります。 また転記後は1つのシート内に、転記前のシートのE列にあったものがC列、L列→E列、S列→B列、V列→H列に並ぶように転記したいです。 ③ '23行分ループ For i = 1 To 23 この部分ですが、最終行までループさせたいです。 質問に説明不足な点がありましたら、大変恐縮ですがご指摘頂けますと幸いです。 どなたか、お教えいただけますと助かります。よろしくお願いします。

  • 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超初心者です。 ネットを見ながら試行錯誤している状況です。 コードの間違い等あるかもしれませんが、 ご教示よろしくお願いいたします。

  • マクロで別シートの検索と別シートへの転記

    windows7、エクセル2013です。 Sheet1のA列の値を上から順に、Sheet2のA列内を検索し 同じ値が有ればその値を Sheet3のB列の5行目から順番に転記したいです。 Findを使ってうまくできないので Countifを使いましたが、駄目でした。 関数で可能なら関数でもいいのですが、教えていただきたいです。 よろしくお願いします。 Sub 抽出転記() Dim 検索行 Dim 検索値 Dim 答 Dim 入力行 入力行 = 5 For 検索行 = 3 To 200 検査値 = Worksheets("Sheet1").Cells(検索行, 1) If Worksheets("Sheet2").Columns("A").CountIf(検索値) <> 0 Then 答 = 検索値 Worksheets("Sheet3").Cells(入力行, 2) = 答 入力行 = 入力行 + 1 End If Next 検索行 End Sub