Excel VBA 質問スレッド №1975 (未解決)

Excelで、ブックAの式をブックBのセルへセットし、式で計算された値をブックCにセットしたい

投稿者 : 事務職2年目     投稿日時 : 2024/07/29(Mon) 16:03:48     OS : Windows 11     EXCEL : Excel 2019
お世話になっております。
事務職員2年目の初心者です。

ブックAのC10、C11、C12にある式をブックBのC10、C11、C12へそれぞれセットして、
ブックBのC10、C11、C12の式によって計算された値をブックCのA2、B2、C2へセットしたい場合、
VBAでの作成になると思いますが、
簡単に作成できるでしょうか?

ブックBになるExcelファイルは複数あり、
ブックCにそれぞれAの情報をレコードとして登録するのが目的です。

ブックB①をブックCの2行目へ
ブックB②をブックCの3行目へ
ブックB③をブックCの4行目へ

といったようにです。
こんな感じというVBAをおしえていただける方はいらっしゃいますでしょうか。

ブックBは
'選択されたファイルのフルパスをFilePathに格納する
FilePath = Application.GetOpenFilename("Microsoft Excelブック,*.xlsx?")
で直接ファイル選択したいと考えています。

ご助言よろしくお願いいたします。

スポンサーリンク
[返信 1] Re : Excelで、ブックAの式をブックBのセルへセットし、式で計算された値をブックCにセットしたい
投稿者 : さんこう     投稿日時 : 2024/07/29(Mon) 17:24:04
>簡単に作成できるでしょうか?

簡単かどうかは存じませんが、できるかと思います。


参考になれば。

Sub こんな感じ()
    Set wbA = ThisWorkbook
    Set wbC = Workbooks.Open(ThisWorkbook.Path & "\ブックC.xlsx")
    
    For i = 2 To 4
        FilePath = Application.GetOpenFilename("Microsoft Excelブック,*.xlsx?")
        Set wbB = Workbooks.Open(FilePath, , True)
        
        'ブックAのC10、C11、C12にある式をブックBのC10、C11、C12へそれぞれセット
        
        'ブックBのC10、C11、C12の式によって計算された値をブックCのA2、B2、C2へセット
        
        wbB.Close False
    Next
End Sub

[返信 2] Re : Excelで、ブックAの式をブックBのセルへセットし、式で計算された値をブックCにセットしたい
投稿者 : 事務職2年目理系女子     投稿日時 : 2024/07/31(Wed) 08:20:20
さんこうさん

レスありがとうございます。
いただいたご助言、とくにファイルの読み込みのところを参考にさせていただきました。
ありがとうございます。

当初少しややこしく考えてしまっていたので、やり方を変更しました。

ブックBのC10、C11、C12にある値をブックAC合体のC10、C11、C12へそれぞれセットして、
ブックAC合体内で、C10、C11、C12の計算した値を
ブックAC合体の別シートA2、B2、C2へセットしていこうと思っています。

ブックAC合体にボタンを作成して、
ブックBの読み込みを都度ダイアログボックスで指定して読み込むようにしました。

--------------------------------------------------

Dim FilePath As String
Dim wba
Set wba = ThisWorkbook
FilePath = Application.GetOpenFilename("Microsoft Excelブック,*.xlsx?")
Workbooks.Open FilePath
Filename = Dir(FilePath)

'ブックAC合体へ値の代入    ↓ブックB
Me.Range("C10") = Workbooks(Filename).Worksheets("入力").Range("C10").Value
Me.Range("C11") = Workbooks(Filename).Worksheets("入力").Range("C11").Value

--------------------------------------------------

とりあえず、ブックBを読み込んで、ブックACへセットするところまできました。
これからの課題として、
①ブックBのフォームコントロールのチェックボックス「フォーム1」を読み込んでブックACへセット
②ブックACへセットした値を同ブック内の別シートへ1行のレコードとしてコピー
③②をセットする際、次の行へのセットの仕方

があります。
今、①のフォームコントロールのチェックボックスをどのようにしたら読み込めるのかが分からず、
前へ進めない状況になっています。

フォームコントロールのチェックボックスの値(TRUEかFALSEか)を読み込む、
また、それを自分のフォームコントロールのチェックボックスにセットする、ということは可能でしょうか?

引き続き、ご助言いただけたら幸いです。よろしくお願いいたします。

[返信 3] Re : Excelで、ブックAの式をブックBのセルへセットし、式で計算された値をブックCにセットしたい
投稿者 : さんこう     投稿日時 : 2024/07/31(Wed) 09:38:49
>フォームコントロールのチェックボックスをどのようにしたら読み込めるのか

参考になれば。

<vba フォームコントロール チェックボックス 値 取得 設定>
https://www.google.com/search?q=vba+%E3%83%95%E3%82%A9%E3%83%BC%E3%83%A0%E3%82%B3%E3%83%B3%E3%83%88%E3%83%AD%E3%83%BC%E3%83%AB+%E3%83%81%E3%82%A7%E3%83%83%E3%82%AF%E3%83%9C%E3%83%83%E3%82%AF%E3%82%B9+%E5%80%A4+%E5%8F%96%E5%BE%97+%E8%A8%AD%E5%AE%9A

[返信 4] Re : Excelで、ブックAの式をブックBのセルへセットし、式で計算された値をブックCにセットしたい
投稿者 : 事務職2年目理系女子     投稿日時 : 2024/07/31(Wed) 10:26:15
さんこうさん

ありがとうございます!

Dim rc1 As Long

rc1 = Workbooks(Filename).Worksheets("入力").CheckBoxes("チェック 1").Value
Me.CheckBoxes("チェック 1") = rc1

で、ブックB→ブックACへのチェックボックスの値のセットができました。

また②③について、
同じようにGoogleで検索で調べました。

③は、
Dim LastRow As Long
LastRow = Sheet2.Cells(Rows.Count, "E").End(xlUp).Row
LastRow = LastRow + 1

というやり方でEが必須項目なので、Eで最終行をチェックすることができました。

さんこうさんからすぐにご助言いただけたおかげで、
やりたいことが実現できそうです。

ありがとうございました!

当掲示板について
  • Excel VBA に関する掲示板です。Excel VBA に関する質問や疑問、それに対する解決方法など気軽に投稿してください。
  • 記事内ではHTMLのタグは使用できません。
  • 記事は一度投稿すると修正できません。内容を訂正したい場合は返信で対応してください。
  • Sub〜End Sub、Function〜End Function は自動的にプログラムコードとみなし、枠で囲って見やすくします。
  • Excel VBA とは関係ないことや、他人が不快に思うようなことなど、管理人が適当でないと判断した記事は削除する場合があります。
スポンサーリンク
返信入力フォーム
お 名 前  :
内  容   :

ステータス  :

認証コード  : キャプチャ画像 




( 処理日時 : 2025-07-06 01:30:43 )
タイトルとURLをコピーしました