
Sub SumValues()
Dim file1 As Workbook
Dim file2 As Workbook
Dim file3 As Workbook
Set file1 = Workbooks.Open("file1.xlsx")
Set file2 = Workbooks.Open("file2.xlsx")
Set file3 = Workbooks.Open("file3.xlsx")
file3.Sheets(1).Range("A2").Value = file1.Sheets(1).Range("A2").Value + file2.Sheets(1).Range("A2").Value
file3.Sheets(1).Range("B2").Value = file1.Sheets(1).Range("B2").Value + file2.Sheets(1).Range("B2").Value
file3.Sheets(1).Range("C2").Value = file1.Sheets(1).Range("C2").Value + file2.Sheets(1).Range("C2").Value
file1.Close
file2.Close
file3.Close
End Sub
上記コード内容でfile1Sheet1a2=10、b2=20、c2=30とfile2Sheet1a2=40、b2=50、c2=60というファイルが二つあります。この二つのファイルのa2、b2、c2の値を合計した値をfile3のa2、b2、c2に合計値を表記するVBAコードを作成していただいたものです。
Excel のブックを開きます。
1.[Alt]+[F11] キーを押して VBA エディタを開きます。
2.左側の「Project Explorer」ウィンドウにある「Microsoft Excel Objects」を右クリックして、[Module] を選択します。
3.新しいモジュールが作成されたら、その中に上記の VBA コードをコピー&ペーストします。
4.[Alt]+[Q] キーを押して VBA エディタを終了します。
5.各セルにデータを入力した後、マクロを実行するために、[Alt]+[F8] キーを押します。
6.Macros」ダイアログボックスから「SumCells」マクロを選択し、[Run] を選択します。
7.合計値が表示されたら、file3 シートに結果を保存します。
上記 5.まで行えば簡単に行くのかと思ったのですが、全然だめでして、6.,7.の内容カ所が出てこないように思っており、そこがうまくいってないからなのでしょうか?
どうか張り付けた後のエクセルの手続き順序を教えてください。
コード自体にも問題があるのでしょうか
コードはfile3に張り付けました
VBAというフォルダーにfile1,file2,file3をまとめて入れております。このように一つのフォルダーにファイルを納めないといけないですか?
ファイル形式はxlsm
エクセルは365を使用しております。
コードに関しては「chatGPT」よりの回答をそのままコピー貼り付けです。
どうか基本がまったっくわかっていないので、ご迷惑かけますが何卒お教えください。お助けください。
No.1ベストアンサー
- 回答日時:
コードの基本はできてそうですがやっぱり完璧ではないですね...でもaiでここまでできたなら上出来です。
チョー覚えにくそうなショートカットだらけの張り付けだが一応間違えてはいないその方法もaiに聞いたのでしょうか。
技術の進歩に感動しますな。
このプログラムを日本語で言うと、
ブックを次の名前で”file1”、”file2”、”file3”を開く(パスを指定していないのでここで多分エラー)
A2、B2、B3の合計をfile3ブックに入れる(ここは改行がなければ完璧だがあるのでエラー)
全てのブックを閉じる(保存しないで閉じるので結局何もしてないことになる。まあ保存するか聞かれるけど。)
つまり全てにおいて惜しいプログラムです。
正直質問の様子だとファイルパスを入れてとか保存するプログラムを入れてとか直し方を言っても出来ないと思うので詳しい人と直していったほうがいいと思います。
そしてこのプログラム名はSumValuesなのでSumCellsマクロはなくて当然です。SumValuesを選んでください。上でも書きましたがエラーだらけで実行できないと思いますが。。。
張り付けもfile3に行うとopenした時にリセットされて多分プログラム停止すると思います。このプログラムだともうひとつの全く関係ないブックで実行する必要があります。
色々言いましたがまとめると詳しい人に聞いてください(全く役に立たなくてすみません、)
どうしても周りにわかる人がいないなら........詳しい回答が来るのを願っております笑
No.2
- 回答日時:
こんばんは
いろいろありそうですが・・
>6.,7.の内容カ所が出てこないように思っており、
>そこがうまくいってないからなのでしょうか?
文章に曖昧なところがあるので、実際の状況が正確にはわかりかねますが・・
>5.各セルにデータを入力した後、マクロを実行するために、[Alt]+[F8] キーを押します。
[F8] キーはエディタ画面での「ステップイン」コマンドです。
シートから実行する場合は、リボンの「開発」-「マクロ」からダイアログを開いてください。
(あるいは、Alt L P M キーを押し下げ)
>6.Macros」ダイアログボックスから「SumCells」
>マクロを選択し、[Run] を選択します。
ご提示のプロシージャは「SumValues」なので、それを実行したければ「SumValues」を選択する必要があります。
>コード自体にも問題があるのでしょうか
>コードはfile3に張り付けました
コードがfile3にあるのなら、実行する時にはfile3が開いた状態でしょうから、VBAからfile3を開く必要はないと思われます。
一番の問題点は、各ブック名を指定しただけでブック開こうとしていることでしょう。
(大抵の場合は、ご提示のままではエラーになると想像します)
ブック名だけでなく、ファイルのフルパスで指定するのが確実です。
>このように一つのフォルダーにファイルを納めないといけないですか?
フルパスで指定すれば、同じフォルダーでなくてもかまいません。
>ファイル形式はxlsm
マクロを有効にするブックの拡張子はxlsmなので問題ないのですが、ご提示のコードでは3つのブックの拡張子はxlsxとなっており、更には、
>コードはfile3に張り付けました
とも矛盾しています。
拡張子が違っていると「ファイルが見つからない」のでエラーが発生します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
vba textboxへの入力について教...
-
Vba セルの4辺について罫線が有...
-
vbsでのwebフォームへの入力制限?
-
Vba FileSystemObject オブジェ...
-
複数のExcelファイルをマージす...
-
【マクロ】並び替えの範囲が、...
-
エクセルのVBAコードと数式につ...
-
【マクロ】値を渡されたプロシ...
-
VBAでユーザーフォームを指定回...
-
【ExcelVBA】5万行以上のデー...
-
VBAでセルの書式を変えずに文字...
-
Web画面の文字をVB6で取得したい
-
VBAでCOPYを繰り返すと、処理が...
-
VBA ユーザーフォーム ボタンク...
-
Vba Array関数について教えてく...
-
【マクロ】シートの変数へ入れ...
-
【マクロ】売上一覧YYYYMMDDHHS...
-
【マクロ】開いているブックの...
-
エクセルのマクロについて教え...
-
エクセルの改行について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
fgets で値が取得できない
-
drtファイルはどうしたら開...
-
MATLABのm-fileについて
-
ファイル全てを .xlsm に変更し...
-
window.open でのファイル指定方法
-
シェルスクリプトによる計算
-
どこがおかしいのか教えてくだ...
-
文字列の抽出がうまくできません
-
ファイルの読み込みと置き換え
-
VBAコードを張り付け後のエクセ...
-
PHPコードをはじめ、記号や記述...
-
python renameについて
-
巨大なテキストの最終行を取得...
-
perlのDigest::MD5;でのMD5算出...
-
WindowsでPerlをする際,1行目の...
-
正規表現で " ← を削除する...
-
正規表現の一致について
-
powerpointでwebページとして保...
-
VBA テキストファイルを読み取...
-
データフォルダ参照先
おすすめ情報