![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
A 回答 (6件)
- 最新から表示
- 回答順に表示
No.6
- 回答日時:
No.1の者です。
直接の回答ではないかもしれませんが、Excelにマクロの記録の機能があります。
その機能を使って、質問者さんが操作すると、その操作した内容がコードに
なります。
https://excel-ubara.com/excelvba1/EXCELVBA303.html
例えば、マクロの記録開始 → csvファイルを開く → Max関数でMaxを
求める → 結果をコピペする → csvファイルを閉じる
上記の様な方法で良いと思うのですが。
因みに、参照先CSVファイルの24個の1時間ごとの温度データというのは、
どの様な感じのデータ群になるのでしょうか?
1日に24個の温度データができるcsvファイル:Max24個と決まっている。
若しくは、毎日続けて記録され、日時、温度とずっと増えていくデータ。
上記なら、セルの固定でMax関数で算出できるかと思います。
下記なら、やり方を考える必要があるかと思います。
>2. 参照元のデータまとめファイルに最高温度のみをマクロでコピペする
上記の内容をできれば、参照先のファイルを開かずに行いたいが、できなければ、ファイルを開いて行いたい
→推測ですが、若しかして、温度データが更新される時に、ファイルを開いた状態だと保存(更新)に失敗するから?という事でしょうか?
もし、そうなら、読み取り専用で開くという手もあるかと。
csvファイルを、Workbook.Openで、ReadOnlyの設定をTrueにして開く
と、読み取り専用としてcsvファイルがExcel形式で開けます。
https://www.sejuku.net/blog/34458
No.5
- 回答日時:
No.2です。
それぞれのファイルが正確にどんな形式なのかと言う情報が必要でしょう。
仮にともにCSVファイルだとしたら、個人的な経験だけですが(未熟ゆえ)取り出す事は可能ですね。(データがどのように保存されているかにもよりますが)
ただ書き込むってのは一度すべてのデータを取り出し、必要な箇所に書き足す?イメージになると思います。
例えるならWordで作成している時はコピペやカット&ペーストは作業できますが、それを紙に印刷した後だと切り貼りなどは手間と言うか綺麗には仕上がりにくいみたいな。
ExcelでCSVファイルを開けばセル単位にデータが入る書式かなと感じますので、開いた方が楽だと思いますよ。
https://oshiete.goo.ne.jp/qa/12709445.html
こちらの#3(回答者: fujillin さん)のご意見が参考になるかと。
あとはワークシート関数 : 変数 = WorksheetFunction.Max(Range(セル範囲)) で数式を都度入れる必要はなくなるかと。
その後のセルの検出って必要な事なのでしょうか?
必要であれば上記で取得した変数(の値)をFindメソッドで検索とかも。
No.4
- 回答日時:
補足の2番目。
ADO等で接続してSQL文を書けば可能ですが、最近のEXCELならパワークエリもあるようです。
CSVファイルはExcelで開けますがあくまでもテキストファイルのたぐいですからね。
No.2
- 回答日時:
>それを参照先のExcelファイルは開かず別Excelファイルにコピペする方法
基本的には無理でしょ。
まずどのようなシート構成になっているかでも変わるでしょうけど、開かずにデータを取り出す事は手段としてありますが、
・結合したセルの値
・セルの塗りつぶしや罫線などの装飾
・数式
は取得できないと思いますよ。
あくまでもCSVファイル形式で保存されるようなデータのみ。
それを逆にってなら尚更貼り付け先が例えば以前のデータの次にってなるなら、その以前のデータが存在している個所を探し回らないとならない。
その手間などを考えたら普通に開いてしまう方が良いかと。
---★
それとも参照先ってのは数式で参照したいBookの事ですか?
開かずにってならそのBookがどこに保存されているか、フルパスで指定すれば可能と思いますけど?
⇒セル範囲で指定可能かは検証してません。
https://ja.extendoffice.com/documents/excel/4226 …
ただし注意も必要かも
https://excel-ubara.com/excel3/EXCEL026.html
★あとはより具体的な情報次第でしょうね。
場合によってはPythonなど他の言語の方が可能性として考えられるかもですし。
No.1
- 回答日時:
こんばんは。
直接の回答ではありませんが、ファイルを開かないで、コピーしたい理由は
何かあるのでしょうか?
基本は、ファイルを開いての操作の方が簡単だと思うのですが。。。
うまくいかないマクロを提示すると、詳しい方から回答が貰えるかと。
ブックの構成が良く分かりませんが、ブックは2つ、それとも3つ?
1,温度データの(最大値が)書かれているブック
2,参照先のExcelファイル これは開かない。
3,別Excelファイル
データがどのようになっているかが、説明がないですね。
下記は検索しただけですが、VBA EXCEL 開かずにデータ操作
https://oshiete.goo.ne.jp/qa/6428831.html
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Excelのマクロコードについて教えてください。 1 2022/03/27 13:25
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/02/07 09:58
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/07/04 17:58
- Excel(エクセル) VBA ふたつの同じ様式シートのセルをコピーしたい 2 2023/03/08 15:28
- Excel(エクセル) Excelのマクロについてご教授ください 2 2023/02/25 09:43
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/06/04 09:39
- Visual Basic(VBA) VBA アドインについて お詳しい方 ご教授をお願いします。 相談事項 現在以下の対応を実施した所、 1 2022/11/02 16:53
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/07/03 09:11
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2023/02/21 13:29
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/03/07 14:05
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセル終了時の保存確認メッ...
-
コピーしたファイルのマクロを...
-
昨日まで動いていたエクセルの...
-
VBA マクロ実行時エラー’1004Ra...
-
excelファイルに使われているVB...
-
VBAを一度起動するとずっと出て...
-
AccessからExcelマ...
-
excelのマクロ実行でブロックさ...
-
Word用のマクロが急に働かなく...
-
Excelマクロ ファイル名が変わ...
-
Excel2010 PERSONAL.xlsbの挙動...
-
マクロを消すマクロは不可能?
-
別のパソコンでエクセルのマク...
-
エクセルファイルを自身のファ...
-
エクセルで<名前をつけて保存...
-
「開いているすべてのブック」...
-
EXCELマクロコードを、それを含...
-
EXCELでマクロを記録する際に、...
-
マクロを設定したのに、拡張子...
-
【マクロ】エラーが発生⇒実行時...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセル終了時の保存確認メッ...
-
VBAを一度起動するとずっと出て...
-
【マクロ】その時、その時で変...
-
VBA マクロ実行時エラー’1004Ra...
-
昨日まで動いていたエクセルの...
-
マクロの有効化するダイヤログ...
-
別のパソコンでエクセルのマク...
-
コピーしたファイルのマクロを...
-
EXCEL マクロ クリップボードク...
-
excelファイルに使われているVB...
-
エクセルファイルを自身のファ...
-
Excelマクロ ファイル名が変わ...
-
Microsoft Excelのファイルのエ...
-
Excelが勝手にシート移動してし...
-
excelが別プロセスで起動してし...
-
エクセルマクロ実行中に別ファ...
-
エクセル2013vbaで、見えない名...
-
マクロでマクロを削除する
-
アクセスでファイルを開いたと...
-
Excel2010 PERSONAL.xlsbの挙動...
おすすめ情報
、やりたい内容は
1. 参照先CSVファイルの24個の1時間ごとの温度データからマクロで最高温度のセルを検出する
2. 参照元のデータまとめファイルに最高温度のみをマクロでコピペする
上記の内容をできれば、参照先のファイルを開かずに行いたいが、できなければ、ファイルを開いて行いたい
※ 2.のコピペ(ファイル開いて)のマクロはわかっているのですが、1.の最高温度のみ検出するやり方がわかりません。
ExecuteExcel4Macroというもので参照元、参照先ファイルのセルを指定してマクロを作ってみましたが、一般的なブックでは可能でしたが、CSVファイルではできませんでした。
毎日の温度データにおいて最高温度を毎回MAX()という式を入力し計算して行っていて、効率化したいと考えています。
マクロで最大値を計算してセルを検出することは可能なのでしょうか。