Excel VBA 質問スレ Part83 (475レス)
Excel VBA 質問スレ Part83 http://mevius.5ch.net/test/read.cgi/tech/1749348402/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
1: デフォルトの名無しさん [sage] 2025/06/08(日) 11:06:42.20 ID:j4jIPbHU ExcelのVBAに関する質問スレ コード書き込みや作成依頼もOK 次スレは>>980が立てること 無理なら細かく安価指定 ※前スレ Excel VBA 質問スレ Part82 https://mevius.5ch.net/test/read.cgi/tech/1737657075/1 http://mevius.5ch.net/test/read.cgi/tech/1749348402/1
349: デフォルトの名無しさん [sage] 2025/07/04(金) 08:07:10.89 ID:3EnEQ/Df >>345 AIだろうと人だろうと成果物のテストするだろ 何のためにテストすると思ってるの? http://mevius.5ch.net/test/read.cgi/tech/1749348402/349
350: デフォルトの名無しさん [] 2025/07/04(金) 09:00:20.43 ID:fF3rQ1JL AIに投げる質問を造るのがうまいと言うことは既にAIに聴く必要が無いんだわ http://mevius.5ch.net/test/read.cgi/tech/1749348402/350
351: デフォルトの名無しさん [sage] 2025/07/04(金) 13:21:56.31 ID:3EnEQ/Df それは違う プロンプトエンジニアリング能力と他の能力は別物 http://mevius.5ch.net/test/read.cgi/tech/1749348402/351
352: デフォルトの名無しさん [sage] 2025/07/04(金) 15:02:13.77 ID:pEhONqjq だったらAIにでも話してろよ http://mevius.5ch.net/test/read.cgi/tech/1749348402/352
353: デフォルトの名無しさん [] 2025/07/04(金) 18:27:01.53 ID:0E9WgSh7 一生懸命コードの基礎学んだのにセンスが無い奴は必死になるよなそりゃ http://mevius.5ch.net/test/read.cgi/tech/1749348402/353
354: デフォルトの名無しさん [sage] 2025/07/04(金) 19:13:39.58 ID:3EnEQ/Df >>353 ? http://mevius.5ch.net/test/read.cgi/tech/1749348402/354
355: デフォルトの名無しさん [sage] 2025/07/04(金) 21:05:20.15 ID:rizrt2ys >>349 言いたいことがよくわからないです。 おっしゃってるようにAIでコードを書いても人で書いてもテストはします。 ただAIで書いたコードのテストは人のコードより時間がかかるというお話ですか? 丁寧にAIに教えてもらえても? AIは関係ないと思うけど違うのかな。 http://mevius.5ch.net/test/read.cgi/tech/1749348402/355
356: デフォルトの名無しさん [sage] 2025/07/04(金) 21:22:07.36 ID:JLFKZ1OE >>355 どこの何をテストする必要があるのかを判断できる能力がある、 もしくはどこの何をテストする必要があるかを導くプロンプトを書ける、 もしくは必要な箇所なテストまで終えるプロンプトをかけるなら問題ない http://mevius.5ch.net/test/read.cgi/tech/1749348402/356
357: デフォルトの名無しさん [sage] 2025/07/05(土) 06:16:26.93 ID:+cv+JpUz >>356 例えばCSVファイルを開くときのテストケースを教えてってAI聞いてみたけど答えてくれたよ。 VBAでCSVファイルを開く処理に対して、以下のようなテストケースを行うと、動作の信頼性やエラー対策が強化できます。 主なテストケース一覧 ・CSVファイルが存在し開ける 正常にファイルを開けることを確認 ・ファイルが存在しない場合 指定されたCSVが見つからない場合の対処 ・既に開かれているブックかどうかを確認 ・読み取り専用のCSVを開けるかどうか のテスト ・空のCSVファイル 内容が空でもエラーにならないか確認 ・文字コードに関わるデータが正しく読めるかのテスト ・CSVの列数・行数が極端に多い たくさんのデータがあるときの パフォーマンスの確認 ・ダブルクォートやカンマを含むセル "東京,品川"のようなセルが正しく扱われるか セル確認 ・ファイルロックされている場合のエラー回避の確認 http://mevius.5ch.net/test/read.cgi/tech/1749348402/357
358: デフォルトの名無しさん [sage] 2025/07/05(土) 06:51:38.76 ID:pq8ewG8r >>357 それだとハルシネーションが含まれていた場合のことを考慮できてない http://mevius.5ch.net/test/read.cgi/tech/1749348402/358
359: デフォルトの名無しさん [sage] 2025/07/05(土) 08:48:09.96 ID:rEK7AeQH >>357 余計な型変換に関する確認が必要 0312345678 → 312345678 1-2 → 1月2日 http://mevius.5ch.net/test/read.cgi/tech/1749348402/359
360: デフォルトの名無しさん [sage] 2025/07/05(土) 08:57:41.98 ID:rEK7AeQH 古いExcelでは先頭がIDだとSYLK扱いされる問題もあるな http://mevius.5ch.net/test/read.cgi/tech/1749348402/360
361: デフォルトの名無しさん [] 2025/07/05(土) 09:10:19.51 ID:+boHNEOG >>357 csvファイルへのショートカットだった場合のチェックがない 開くと読み込みを一緒にしているのが気になった その前にもともと自力でできる作業なら初めからAIは使わないだろうし AIが示さない項目を無視していいかの判断ができるのかな 主な項目だからそれ以外もあるよとか後になって言うのはどうかと思うし http://mevius.5ch.net/test/read.cgi/tech/1749348402/361
362: デフォルトの名無しさん [] 2025/07/05(土) 09:13:22.18 ID:gPk7JHhb ショートカット?これは馬鹿のふりしてるの? http://mevius.5ch.net/test/read.cgi/tech/1749348402/362
363: デフォルトの名無しさん [] 2025/07/05(土) 09:31:15.35 ID:vyFcCxL+ ショートカットでもcsv開くことがあるがcsvでないことはしっている http://mevius.5ch.net/test/read.cgi/tech/1749348402/363
364: デフォルトの名無しさん [sage] 2025/07/05(土) 09:35:20.09 ID:eCCJvae8 既にAIの知能が人間を遥かに超えており、ボトルネックがバカな人間であることがよくわかるスレ http://mevius.5ch.net/test/read.cgi/tech/1749348402/364
365: デフォルトの名無しさん [] 2025/07/05(土) 09:46:16.30 ID:vyFcCxL+ うちの環境が普通でないなら無視してくれて構わんよ http://mevius.5ch.net/test/read.cgi/tech/1749348402/365
366: デフォルトの名無しさん [] 2025/07/05(土) 09:55:15.54 ID:Pf7qA/Ja 我流、独学でExcelをやっている人が表を作ると、そのつもりやその存在を全く知らなくても、マトリクス表形式で表を作成してしまい、しかも完成したものに対してピボットテーブルを使用すると言うのはあるあるですよね? http://mevius.5ch.net/test/read.cgi/tech/1749348402/366
367: デフォルトの名無しさん [sage] 2025/07/05(土) 10:34:06.26 ID:+cv+JpUz >>358 それを自分で確認したらダメなんです? >>359 >>360 >361 指摘ありがとうございます。 主な一覧だったのでテスト例はさらに出てきたかもしれないです。 開くと読み込むは問い合わせ方が悪かったかもです。 AIで出てこなかった項目が無視できるかどうかの判断は難しいですね。 明らかにテストしなきゃいけない項目がAIで抜けててAI丸投げで作った製品を納品されると怖いものがありますね。 ただAI丸投げの流れは止められないでしょうね。 http://mevius.5ch.net/test/read.cgi/tech/1749348402/367
368: デフォルトの名無しさん [] 2025/07/05(土) 11:46:24.77 ID:dpOItoML >>357 CSVカラムの途中で改行が入る場合 http://mevius.5ch.net/test/read.cgi/tech/1749348402/368
369: デフォルトの名無しさん [] 2025/07/05(土) 15:15:49.95 ID:y/LWjdC1 「俺が流れを止めるからお前は先に行け!」みたいなこと言ってみたいね http://mevius.5ch.net/test/read.cgi/tech/1749348402/369
370: デフォルトの名無しさん [sage] 2025/07/05(土) 15:50:51.02 ID:8jsOt+Pc 「その作業が本当に必要かどうか、もう一度考え直す」 http://mevius.5ch.net/test/read.cgi/tech/1749348402/370
371: デフォルトの名無しさん [sage] 2025/07/05(土) 19:53:47.88 ID:AqSnrZiN >>370 それはVBA職人的にはタブーでしょ 人力でやってた仕事というのは、自動でやるなら本質的にはそもそもやる必要のないものが多い VBAはワークフローの改善に踏み込むことなくただ人力作業を単純に自動化するのが王道で、 仕事の意味を問うてしまうとVBAの仕事が減ることに繋がる http://mevius.5ch.net/test/read.cgi/tech/1749348402/371
372: デフォルトの名無しさん [sage] 2025/07/05(土) 22:49:12.14 ID:+cv+JpUz >>368 指摘ありがとうございます。 もう回答を全部出してみたよ。 これ以外でテストケースがあるなら負けです。。。 VBAでCSVファイルを開いて読み込む際には、さまざまなケースに対応する必要があります。考えうるテストケースをカテゴリ別に網羅的に洗い出します。 基本ケース 1 正常なCSVファイルを開いて正しく読み込めるか 2 ファイルが存在しない場合のエラー処理 3 空のCSVファイルを読み込んだときの動作 4 CSVファイルのパスに全角文字・日本語が含まれる場合 データ構造・形式のバリエーション 5 カンマを含むデータがダブルクォートで囲まれている "東京都,千代田区"など 6 改行が含まれるデータ 7 ダブルクォートを含むデータ 8 区切り文字がセミコロンやタブなどの場合 9 複数の空白を含む行 10 各行のカラム数が不揃い 11 数値が先頭に0を含むデータ 12 日付形式のデータ 13 UTF-8 BOM付きファイル 14 Shift-JIS形式のファイル http://mevius.5ch.net/test/read.cgi/tech/1749348402/372
373: デフォルトの名無しさん [sage] 2025/07/05(土) 23:41:01.05 ID:8jsOt+Pc >>372 ・パスが長すぎる場合 ・処理系による改行コードの違い ・ファイル全体でダブルクォートが奇数個(閉じられていない) ・巨大すぎる(項目のサイズ、項目の数、行数) ・ファイルの破損(バイナリデータ混入など) ・ファイルシステムの破損、不良セクタなど http://mevius.5ch.net/test/read.cgi/tech/1749348402/373
374: デフォルトの名無しさん [sage] 2025/07/06(日) 02:30:01.30 ID:N2XXWgcj >>372 Workbooks.OpenでCSVを読むならテスト項目ほとんど要らなくね? テキストファイルとして読んで、列と行の分割処理をするなら、 CSVのフォーマット定義を先にやらないとテスト項目作れなくね? 読み込みファイルの指定方法も先に決める必要がなくね? http://mevius.5ch.net/test/read.cgi/tech/1749348402/374
375: デフォルトの名無しさん [sage] 2025/07/06(日) 06:55:32.42 ID:hfT56Vvk >>373-374 Claude様に聞いてやったぞ 373と374は的外れすぎる 373について ・「ファイルシステム破損、不良セクタ」→ システム障害テストの範疇、CSV処理テストじゃない ・「ファイル破損(バイナリ混入)」→ 同上、テスト範囲を混同してる ・「巨大すぎる」→ パフォーマンステスト、機能テストと分けろ 改行コードとダブルクォート奇数個は有効だが、他は論点ズレ 374について 完全に間違ってる ・「Workbooks.Openならテスト項目要らない」→ 嘘、文字化け・区切り文字誤認識・データ型自動変換でバグ頻発する ・「CSVフォーマット定義を先に」→ RFC4180あるし、372みたいに実際の問題パターン網羅する方が実用的 ・「読み込み方法を先に決める」→ 順序が逆、テストケース洗い出してから実装方法決めるのが正解 372が一番まとも。実際の開発で遭遇する問題を的確に押さえてる http://mevius.5ch.net/test/read.cgi/tech/1749348402/375
376: デフォルトの名無しさん [sage] 2025/07/06(日) 08:00:56.53 ID:N2XXWgcj >>375 外部仕様を先に決めるべきという意味だったんだけど、それも間違ってんの? CSV=RFC4180というのは一般的じゃない気が・・・ Workbooks.Openを使うなら、「CSVフォーマットはExcelのAPIのそれ」で決定だからAPI動作の二重チェックは不要かな〜と。 http://mevius.5ch.net/test/read.cgi/tech/1749348402/376
377: デフォルトの名無しさん [sage] 2025/07/06(日) 12:05:21.27 ID:Jlu3MuzZ セマフォは? 別プロセスが同じファイルを開いてるから今は処理すべきでない、とか http://mevius.5ch.net/test/read.cgi/tech/1749348402/377
378: 372 [sage] 2025/07/06(日) 21:01:04.07 ID:jU0PBm+8 すみません。 昨日テストケースをすべて載せるつもりだったのですが書き込み制限で書けず途中で諦めました。 テストケースは37項目まであります。 http://mevius.5ch.net/test/read.cgi/tech/1749348402/378
379: デフォルトの名無しさん [sage] 2025/07/07(月) 09:23:50.46 ID:GhKlbyJu だが、Copilotにプログラムを作らせると、こんなにも原始的でバグだらけなのであった しかもこれだとクソ遅い 【設問】以下はVBAでCSVファイルを開いて読み込むプログラムである。バグを指摘せよ。 FilePath = "C:\Users\YourName\Documents\sample.csv" FileNum = FreeFile Open FilePath For Input As #FileNum RowNum = 1 Do Until EOF(FileNum) Line Input #FileNum, LineData DataArray = Split(LineData, ",") Dim i As Integer For i = 0 To UBound(DataArray) Cells(RowNum, i + 1).Value = DataArray(i) Next i RowNum = RowNum + 1 Loop Close #FileNum http://mevius.5ch.net/test/read.cgi/tech/1749348402/379
380: デフォルトの名無しさん [sage] 2025/07/07(月) 10:00:11.48 ID:xGHCrZSN >>379 CopilotはVBAerほどじゃないにせよアホの子だからね 以下、Claude Opus 4 with extended thinkingの回答 主なバグ: 1. カンマを含む値(“Tokyo, Japan”等)が分割される 2. エラー処理なし。ファイルなかったら死ぬ 3. 変数宣言してない(Option Explicit使ってたらエラー) 4. UTF-8読めない。日本語文字化け 5. セル1個ずつ書き込みでクソ遅い 6. 前のデータ消さないから残る 最悪の例: CSVに "売上高は1,000,000円" があったら → 売上高は1 000 000円" の3列に分解されるw 結論:Workbooks.OpenTextかQueryTables使え http://mevius.5ch.net/test/read.cgi/tech/1749348402/380
381: デフォルトの名無しさん [sage] 2025/07/07(月) 10:31:44.26 ID:GhKlbyJu >>380 変数宣言は行数の都合でカットしたのでCopilot君は悪くない http://mevius.5ch.net/test/read.cgi/tech/1749348402/381
382: デフォルトの名無しさん [sage] 2025/07/07(月) 14:15:38.83 ID:quoGln+a >>379 ChatGPTだとこんな感じですね。 そのまま貼り付けたので全角も見てくれてる。 バグ・問題点 1 変数の未宣言 2 インデントに全角スペースが混在 3 変数 i の Dim がループ内にある 補足(改善点) ・CSVに カンマを含むセル がある場合、Splitだけでは不十分(→正確なCSV解析が必要)。 ・ファイル存在チェック (Dir(FilePath) など) を入れるとより堅牢になります。 ・Shift-JIS以外の文字コード(例:UTF-8 BOM付き)は Open では正しく読み込めないことがあります。 http://mevius.5ch.net/test/read.cgi/tech/1749348402/382
383: デフォルトの名無しさん [] 2025/07/07(月) 22:35:59.87 ID:CvRTuASj バグも直してもらえばいいんじゃね http://mevius.5ch.net/test/read.cgi/tech/1749348402/383
384: デフォルトの名無しさん [sage] 2025/07/08(火) 00:47:00.39 ID:urjDQqc8 今日のCopilotはWorkbooks.Openの気分らしい だけどFormat引数が間違ってて動かないw ファイルパス = "C:\Users\YourName\Documents\" ' ←適宜変更してください ファイル名 = "sample.csv" ' ←読み込むCSVファイル名に変更 完全パス = ファイルパス & ファイル名 Workbooks.Open Filename:=完全パス, Format:=6 ↓(実行時エラー1004で動かないぞ!直せ)↓ ファイルパス = "C:\Users\YourName\Documents\" ' ←適宜変更してください ファイル名 = "sample.csv" ' ←読み込むCSVファイル名に変更 完全パス = ファイルパス & ファイル名 Workbooks.Open Filename:=完全パス 直った http://mevius.5ch.net/test/read.cgi/tech/1749348402/384
385: デフォルトの名無しさん [sage] 2025/07/08(火) 01:58:30.92 ID:9X9f1TC3 Format:=6なんて絶対使わないのに、どこからコピペしてきたんだよ http://mevius.5ch.net/test/read.cgi/tech/1749348402/385
386: デフォルトの名無しさん [] 2025/07/08(火) 10:53:17.46 ID:Lf/Jcjxk 馬鹿の上塗り http://mevius.5ch.net/test/read.cgi/tech/1749348402/386
387: デフォルトの名無しさん [] 2025/07/08(火) 16:04:18.48 ID:J6qvAQ9A このスレ沼しか居ねぇな…google ai studioの方がまだ良い解答してくれんぞ… http://mevius.5ch.net/test/read.cgi/tech/1749348402/387
388: デフォルトの名無しさん [sage] 2025/07/08(火) 17:01:18.70 ID:G3ulfBZW >>387 とても鋭い視点です。さすがですね! http://mevius.5ch.net/test/read.cgi/tech/1749348402/388
389: デフォルトの名無しさん [sage] 2025/07/08(火) 17:33:24.49 ID:BCBq8ImS studio と名付けられてる意味わかってんのかな? 中の人はGeminiそのものらしいじゃんか http://mevius.5ch.net/test/read.cgi/tech/1749348402/389
390: デフォルトの名無しさん [sage] 2025/07/08(火) 17:42:58.67 ID:yBGpSZNW >>389 その論理だとChromeとChrome OSも比較できないことになるが? 同じモデル使ってても実装・UI・機能が違えば体験は全然違うぞ StudioはAPI統合やパラメータ調整できる開発者向けツール、コンシューマー版Geminiとは設計思想が違う 「中の人が同じ」で比較無意味論は技術理解が浅すぎる 387の解答品質指摘は妥当な比較対象だし、実際のユーザー体験差を無視してる時点で的外れ とAI様が仰せになっている http://mevius.5ch.net/test/read.cgi/tech/1749348402/390
391: デフォルトの名無しさん [sage] 2025/07/08(火) 18:21:34.45 ID:urjDQqc8 >>385 どうやらCopilotさんは間違って記憶している模様 > Workbooks.OpenのFormat 6 はカンマ区切りですか? はい、Excel VBAで使用される Workbooks.Open メソッドの Format:=6 は「カンマ区切り (CSV) 形式」を示します。 これは、テキストファイルを開くときに、フィールド区切り文字としてカンマが使われている場合に指定されます。 > CSVは2じゃないの? まず結論から言うと: Format:=2 → タブ区切り(Tab-delimited) Format:=6 → カンマ区切り(Comma-delimited) つまり、CSV形式のファイル(カンマ区切り)を読み込むには Format:=6 を使うのが正解です。 w http://mevius.5ch.net/test/read.cgi/tech/1749348402/391
392: デフォルトの名無しさん [sage] 2025/07/08(火) 18:33:40.30 ID:G3ulfBZW うちでは2って教えてくれた http://mevius.5ch.net/test/read.cgi/tech/1749348402/392
393: デフォルトの名無しさん [sage] 2025/07/09(水) 08:08:49.40 ID:NYgpwKZ5 つまり、開発環境てことだろ? その中のAI部分を担当してるのはGeminiという認識なんだが? そのGeminiを使ってAI開発に特化した環境を整えてみましたが、何か? っつーのがStudioなのでは? じゃあ、コンシューマー向けGeminiとStudioの中の人と成り果ててるGeminiと有料版Studioの中の人は ぜんぶ別人が担当してンのか? それぞれ精度にランク付けしてて、コンシューマー向けにはBマイナス程度でいいや StudioならAな その有料版ならA++とかAAAとかでお答えして差し上げろ とか差別化してるん? Ver違いってならまだ判る 無料なら2.0でいいよ Studioは2.5にしとくか 有料版は3.0β版な Copilotを多用してる奴に向かってgoogle ai studio(←ぜんぶ小文字なのが何とも)のが優れてる! っつーお門違いのコンコンチキな放言は許容できるのか? おなじGemini同士で比較して見せるとかならまだしも まあ、おれにはどうでもいいんだけど、ブレインストーミングがてらにしたためてみました http://mevius.5ch.net/test/read.cgi/tech/1749348402/393
394: デフォルトの名無しさん [sage] 2025/07/09(水) 08:48:44.88 ID:/UzV6WSq スレ違いの長文とか救えない http://mevius.5ch.net/test/read.cgi/tech/1749348402/394
395: デフォルトの名無しさん [] 2025/07/09(水) 09:32:08.40 ID:EKMDM/sM 391 x 間違って記憶している o 過學習でアホになった http://mevius.5ch.net/test/read.cgi/tech/1749348402/395
396: デフォルトの名無しさん [sage] 2025/07/09(水) 10:08:19.13 ID:MuvaPJLR LLMで過学習…? http://mevius.5ch.net/test/read.cgi/tech/1749348402/396
397: デフォルトの名無しさん [] 2025/07/09(水) 10:36:50.67 ID:1h9feY7y 391 x 間違って記憶している o 円形脱毛症でハゲになった http://mevius.5ch.net/test/read.cgi/tech/1749348402/397
398: デフォルトの名無しさん [sage] 2025/07/14(月) 13:04:26.89 ID:GLg5N4aG https://forest.watch.impress.co.jp/docs/news/2030817.html 「JScript」に代わり「JScript9Legacy」が既定のスクリプトエンジンに ~Windows 11 24H2以降で http://mevius.5ch.net/test/read.cgi/tech/1749348402/398
399: デフォルトの名無しさん [sage] 2025/07/15(火) 10:46:15.47 ID:1v3q9PKm Windows11の24H2にしたらJScriptが動かない https://blog.macorin.net/dos-not-work-jscript-on-windows11-24h2/ http://mevius.5ch.net/test/read.cgi/tech/1749348402/399
400: デフォルトの名無しさん [sage] 2025/07/15(火) 11:19:52.18 ID:IENqpxZQ 毎日夜中の定刻に、気象庁Webサイトの2つのページからcsv落として月次集計する、 マクロとPowerQuery使った2×2の4つのブックを VBS(例:以下)とタスクスケジューラーを使ってやらせてるんだけど、 いい加減、VBS部分を乗り換えるとしたら、 何がとっつきやすいのかな? PowerShell? PowerAutomate? Python? ---例:DLブックを実行させるVBS--- Const WB_PATH = "E:\集計\01_DLファイル\DLブック_地点A.xlsm" Const PROC_NAME = "DL_Ref" Dim excelApp Set excelApp = CreateObject("Excel.Application") With excelApp .Visible = False Dim wb Set wb = .Workbooks.Open(WB_PATH) .Run wb.Name & "!" & PROC_NAME .DisplayAlerts = False wb.Close End With excelApp.Quit http://mevius.5ch.net/test/read.cgi/tech/1749348402/400
401: デフォルトの名無しさん [sage] 2025/07/15(火) 11:31:18.20 ID:izh84eSC >>400 **PowerShell**がおすすめです。 理由: - VBSに最も近い書き方 - Excelの操作がそのまま使える - Windowsに標準搭載 - 学習コストが低い 移行例: ```powershell $excel = New-Object -ComObject Excel.Application $excel.Visible = $false $wb = $excel.Workbooks.Open("E:\集計\01_DLファイル\DLブック_地点A.xlsm") $excel.Run("DL_Ref") $wb.Close() $excel.Quit() ``` PythonやPower Automateは学習コストか制約があるので、PowerShellが無難です。 http://mevius.5ch.net/test/read.cgi/tech/1749348402/401
402: デフォルトの名無しさん [sage] 2025/07/15(火) 11:33:01.33 ID:l/eryieH vbsに近いならjsだろう http://mevius.5ch.net/test/read.cgi/tech/1749348402/402
403: デフォルトの名無しさん [sage] 2025/07/15(火) 11:52:00.35 ID:1v3q9PKm PowerShellは遅くてびっくりするのと COM(IDispatch)経由の操作なので基本的に書き方はvba/vbsを踏襲する 普通に使うと割とつまらない http://mevius.5ch.net/test/read.cgi/tech/1749348402/403
404: デフォルトの名無しさん [sage] 2025/07/15(火) 11:53:44.70 ID:SjeLYLBh >>400 スレ違い http://mevius.5ch.net/test/read.cgi/tech/1749348402/404
405: デフォルトの名無しさん [sage] 2025/07/15(火) 13:45:04.50 ID:IENqpxZQ >>401,403 ありがとう。やってみる。 http://mevius.5ch.net/test/read.cgi/tech/1749348402/405
406: デフォルトの名無しさん [] 2025/07/15(火) 18:57:22.18 ID:F7nJfSiA やっぱり馬鹿かよ http://mevius.5ch.net/test/read.cgi/tech/1749348402/406
407: デフォルトの名無しさん [] 2025/07/16(水) 22:35:52.90 ID:6RqIkTEU 目的のフォルダを取得する効率的なコードを教えてください 1番効率的なのはフォルダのフルパスそのものを取得する事ですが、それも難しいので各階層の部分一致でお願い致します http://mevius.5ch.net/test/read.cgi/tech/1749348402/407
408: デフォルトの名無しさん [] 2025/07/16(水) 22:45:55.20 ID:NiCGeJue パスが流動的ってこと? 指定する以外にやったことないわ http://mevius.5ch.net/test/read.cgi/tech/1749348402/408
409: デフォルトの名無しさん [sage] 2025/07/16(水) 23:01:32.70 ID:IRXrFh0B 部分一致が複数あるとして、その順番が入れ替わる可能性があるかどうかでコードが変わるね http://mevius.5ch.net/test/read.cgi/tech/1749348402/409
410: デフォルトの名無しさん [] 2025/07/17(木) 00:19:01.17 ID:zBpNwhAR コード\分類\フォルダ\期間別フォルダ\探したいファイル みたいな感じですね http://mevius.5ch.net/test/read.cgi/tech/1749348402/410
411: デフォルトの名無しさん [sage] 2025/07/17(木) 00:24:00.03 ID:Nf2HlQRn >>405 Powershellからcom呼ぶときはしっかりお片付けしてね 適当にやるとC#と一緒でゴミが残る(かも)だから http://mevius.5ch.net/test/read.cgi/tech/1749348402/411
412: デフォルトの名無しさん [] 2025/07/17(木) 01:52:47.41 ID:gLLqR9ZX >>407 馬鹿は「効率的」は何が効率的なのかとかすら説明できない http://mevius.5ch.net/test/read.cgi/tech/1749348402/412
413: デフォルトの名無しさん [] 2025/07/17(木) 05:21:40.06 ID:tC2PFukj 馬鹿じゃなきゃこんなところで聞かない http://mevius.5ch.net/test/read.cgi/tech/1749348402/413
414: デフォルトの名無しさん [sage] 2025/07/17(木) 07:17:52.06 ID:wYenyBlK こう言うことなんじゃないの? ディレクトリ(フォルダ)名が曖昧な記憶だから 漠然とした検索してファイル見付けたい とかなんじゃ https://www.limecode.jp/entry/utility/partialmatch-filesearch 3パターン提示してくれてるから、どれでもお好きなもので・若しくは全部使ってもいいし 一年365日ばかしか書けない誰かさんは無視しとけばいいよ 彼は馬鹿と書き込むのがじぶんのDutyだと思い込んでる節があるし 認知の病なんだろうきっと http://mevius.5ch.net/test/read.cgi/tech/1749348402/414
415: デフォルトの名無しさん [sage] 2025/07/17(木) 07:36:40.82 ID:rYvcj5zc 彼はこんなとこでしかマウントとれないかわいそうなやつなんだ そっとしといてあげよう http://mevius.5ch.net/test/read.cgi/tech/1749348402/415
416: デフォルトの名無しさん [sage] 2025/07/17(木) 07:41:07.22 ID:aYpECmLq >>407 目的のフォルダはどうやって示されてるの? 効率的っていうのは、何に対するパフォーマンスを指してる? http://mevius.5ch.net/test/read.cgi/tech/1749348402/416
417: デフォルトの名無しさん [sage] 2025/07/17(木) 08:47:01.58 ID:sGHKyXGW >>410 Dirでワイルドカードが使えるので、こんな感じに仕上げてみた ※ヒットするパスの例 → C:\Documents\A001\B000X1\Excel\20250717\FileABC001.xlsx HomePath = "C:\Documents" SearchPath = "A???\B*\Excel\2025????\File*.xlsx" ResultPath = HomePath SearchPathList = Split(SearchPath, "\") For I = 0 To UBound(SearchPathList) If Dir(ResultPath) <> "" Then ResultPath = "ファイルの下は何もないよ!" Exit For End If FolderName = Dir(ResultPath & "\" & SearchPathList(I), vbDirectory) If FolderName = "" Then ResultPath = "そんなパスはないよ!" Exit For End If ResultPath = ResultPath & "\" & FolderName Next MsgBox "これかな?" & vbCrLf & ResultPath http://mevius.5ch.net/test/read.cgi/tech/1749348402/417
418: デフォルトの名無しさん [sage] 2025/07/17(木) 09:28:10.58 ID:TqONBLPd あたしゃ、ディレクトリ関係は「見える」の重視で、このあたり参考にしてワークシート関数でやっちゃうけど https://qwerty.work/blog/2021/01/excel-function-path.php http://mevius.5ch.net/test/read.cgi/tech/1749348402/418
419: デフォルトの名無しさん [] 2025/07/17(木) 20:37:37.93 ID:zBpNwhAR >>417 正規表現の様な事ができたのでしょうか? http://mevius.5ch.net/test/read.cgi/tech/1749348402/419
420: デフォルトの名無しさん [] 2025/07/17(木) 20:38:38.98 ID:zBpNwhAR >>416 例えばファイルシステムオブジェクトの再帰処理で全フォルダをループしてしまうのは非効率だなぁという事です http://mevius.5ch.net/test/read.cgi/tech/1749348402/420
421: デフォルトの名無しさん [] 2025/07/17(木) 21:05:30.67 ID:zBpNwhAR >>417 本当に複数の階層で部分一致できますでしょうか? http://mevius.5ch.net/test/read.cgi/tech/1749348402/421
422: デフォルトの名無しさん [] 2025/07/17(木) 23:17:21.95 ID:mypLb9KX 釣りでなければ真正馬鹿で確定 http://mevius.5ch.net/test/read.cgi/tech/1749348402/422
423: デフォルトの名無しさん [sage] 2025/07/17(木) 23:26:46.72 ID:DMF1qliv Chatさん。未検証 再帰使わずキュー処理 Sub FastSearchMinimal() Dim fso As Object, q As Collection, f As Object, i As Object Dim r As Long: r = 2 Dim k As String: k = "sample" Set fso = CreateObject("Scripting.FileSystemObject") Set q = New Collection: q.Add fso.GetFolder("C:\TestFolder") With Sheets(1): .Cells.Clear: .Range("A1:C1").Value = Array("種類", "名前", "パス"): End With Do While q.Count > 0 Set f = q(1): q.Remove 1 For Each i In f.SubFolders: q.Add i: If InStr(1, i.Name, k, vbTextCompare) > 0 Then WriteRow r, "フォルダ", i.Name, i.Path Next For Each i In f.Files: If InStr(1, i.Name, k, vbTextCompare) > 0 Then WriteRow r, "ファイル", i.Name, i.Path Next Loop MsgBox "完了" End Sub Sub WriteRow(ByRef r As Long, t As String, n As String, p As String) With Sheets(1): .Cells(r, 1).Resize(1, 3).Value = Array(t, n, p): End With: r = r + 1 End Sub http://mevius.5ch.net/test/read.cgi/tech/1749348402/423
424: デフォルトの名無しさん [sage] 2025/07/18(金) 03:56:36.13 ID:kCxulfmG 若い子はChatGPTのことチャッピーと呼んでる http://mevius.5ch.net/test/read.cgi/tech/1749348402/424
425: デフォルトの名無しさん [] 2025/07/18(金) 08:09:47.41 ID:JhLn+KYd Sub 探す() Dim fso As Object,root As Object Set fso = CreateObject("Scripting.FileSystemObject") ' ルートフォルダを取得して再帰処理スタート Set root = fso.GetFolder("パス") 再帰処理 root End Sub '――――――――――――――――――――――――――――――― Private Sub 再帰処理( ByVal f As Object) Dim file as Object,fpath as string If Instr(f.name,"目的") > 0 Then ' ファイルをチェック For Each file In f.Fileso If InStr(file.Name,"検索値") > 0 Then fpath = file.path Next End if Dim sf as Object ' サブフォルダを再帰処理 For Each sf In f.SubFolders If Instr(sf.name,"コード") > 0 or Instr(sf.name,"書類") > 0 or Instr(sf.name,"分類") > 0 or Instr(sf.name,"yyyymmdd") > 0 Then 再帰処理 sf Next End Sub http://mevius.5ch.net/test/read.cgi/tech/1749348402/425
426: デフォルトの名無しさん [sage] 2025/07/18(金) 08:22:30.72 ID:avd6O0J8 >>417 はちょっと手抜きしてたので、ちゃんと作り直した。 Sub 使い方() Set Result = New Collection DirMulti "C:\Documents", "A???\B*\Excel\2025????\File*.xlsx", Result, vbNormal (以下略) End Sub Sub DirMulti(HomePath, SearchPath, ResultCollection, Optional Attributes As VbFileAttribute = vbNormal) Pos = InStr(SearchPath & "\", "\") Search = Left(SearchPath, Pos - 1) NextSearch = Mid(SearchPath, Pos + 1) Set SearchResult = New Collection Res = Dir(HomePath & "\" & Search, vbDirectory Or Attributes) Do While Res <> "" If Res <> "." And Res <> ".." Then SearchResult.Add Res Res = Dir() Loop If NextSearch = "" Then For Each Res In SearchResult ResultCollection.Add HomePath & "\" & Res Next Else For Each Res In SearchResult If (GetAttr(HomePath & "\" & Res) And vbDirectory) <> 0 Then DirMulti HomePath & "\" & Res, NextSearch, ResultCollection, Attributes End If Next End If End Sub http://mevius.5ch.net/test/read.cgi/tech/1749348402/426
427: デフォルトの名無しさん [sage] 2025/07/18(金) 09:23:27.37 ID:J+L+9run 要件定義せず走り出すとこうなるという見本 http://mevius.5ch.net/test/read.cgi/tech/1749348402/427
428: デフォルトの名無しさん [sage] 2025/07/18(金) 10:47:27.74 ID:kfpMJi4P ま、それぞれがこれに取り組むことで、それなり成長する(こともある)んだから、いいじゃん 外野から思索も模索もせずにつべこべ小言書くことしかできないご老体には言わせときゃいいだけ 相談者、夜中にしか出張って来ないから、日中に迷走するのはやむを得ない やりたいことは何となく見えてきたけど、それをどう実装したいのか?誰に使わせたいのか?何のために作るのか? とかがイマイチ漠然としてて、方向ぐらいは提示して欲しいのはある エクスプローラー開いて検索じゃあダメな理由とか、ファイルじゃ無くてフォルダ(名)に拘ってるように読めて 例えば、各々が勝手にフォルダ作ってファイル放り込んでるのを是正したいんだ、とかなのか もう一歩踏み込んだ相談が出て来るまで待機、も有り得る http://mevius.5ch.net/test/read.cgi/tech/1749348402/428
429: デフォルトの名無しさん [] 2025/07/18(金) 16:30:22.97 ID:aPZeO8n7 VBAの作り方が上手すぎて情シスに異動させられそうになったセンスの塊こと俺だけどよく構文を知ってるとかテキスト通りにとか気にしてる奴は3流よ 使用者の使いやすさにまず全振り 次に拡張性を気にすりゃメンテナンスもしやすくなる エラー回避しない奴は論外 でも結局はどう動かすかなんよ http://mevius.5ch.net/test/read.cgi/tech/1749348402/429
430: デフォルトの名無しさん [] 2025/07/18(金) 16:43:02.04 ID:AbgnUBWx Aという処理をVBAでさせようってお手本みたいなコードを書いてもそのA自体にセンスが無い奴が多いんだよな それが役職も評価も年収も上がらないVBAを勉強しただけのおぢさん http://mevius.5ch.net/test/read.cgi/tech/1749348402/430
431: デフォルトの名無しさん [sage] 2025/07/18(金) 17:25:18.33 ID:kfpMJi4P >>427 読み直したら、ID末尾runだけに? http://mevius.5ch.net/test/read.cgi/tech/1749348402/431
432: デフォルトの名無しさん [sage] 2025/07/18(金) 18:03:06.70 ID:tx5irUc8 >>431 みんながみんなエスパーしながら好きに書いてる何を読み直すの? http://mevius.5ch.net/test/read.cgi/tech/1749348402/432
433: デフォルトの名無しさん [sage] 2025/07/18(金) 20:55:57.57 ID:kfpMJi4P わかんなきゃいいよw カリカリすんなよ フォルダ名を取得する記事見付けた 検索文字で絞る事もできる *とか?とかも要らん https://tmkr7788.livedoor.blog/archives/26830287.html で、一番上のフォルダ指定するのが手入力っぽいから、それも自動取得するなら Sub Sample() Dim FPath As String With Application.FileDialog(msoFileDialogFolderPicker) .InitialFileName = "C:\ほにゃらら" .Title = "フォルダを選択してください" If .Show = -1 Then FPath = .SelectedItems(1) End If End With Cells(3,3) = FPath End Sub これを別ボタンに貼り付ければ、ディレクトリ探すのもマウスオペだけで済む お好みだけど ※ ほにゃらら部分は、デフォルトで指定しときたいフォルダ名に http://mevius.5ch.net/test/read.cgi/tech/1749348402/433
434: デフォルトの名無しさん [sage] 2025/07/18(金) 21:22:07.30 ID:VbDqcBb9 >>431 これ何言ってるのか理解できない なにがrunだけに、なのか http://mevius.5ch.net/test/read.cgi/tech/1749348402/434
435: デフォルトの名無しさん [] 2025/07/19(土) 04:46:02.20 ID:s8PmOx3D >>45 え、Accessは2027年で使えなくなるの!? http://mevius.5ch.net/test/read.cgi/tech/1749348402/435
436: デフォルトの名無しさん [] 2025/07/19(土) 06:29:44.25 ID:QjhfSjEw >>433 馬鹿 http://mevius.5ch.net/test/read.cgi/tech/1749348402/436
437: デフォルトの名無しさん [sage] 2025/07/19(土) 07:33:32.95 ID:xtuIEHIA >>435 Access2027が最後のAccessになるって、 Windows10が最後のWindowsになるって言ったMicrosoftが言ってた http://mevius.5ch.net/test/read.cgi/tech/1749348402/437
438: デフォルトの名無しさん [] 2025/07/19(土) 08:03:25.99 ID:hkkuRgMQ 昨日初めてwin12て使ってる記事見たわ http://mevius.5ch.net/test/read.cgi/tech/1749348402/438
439: デフォルトの名無しさん [sage] 2025/07/19(土) 09:32:36.51 ID:S5W6kZB3 指定したフォルダ以下の、サブフォルダとファイルを取得する記事も見付けた >>433 のは、フォルダのみだけど、その中身もそのファイル情報も見れるのはいい 何よりシンプル 開きたい場合は上のを参考にすればいいと思う https://akira55.com/showfoldertree/ ExcelにTreeViewって無かったっけ?とか思い直してググってて辿り着いた TreeViewを実装しようと試みて、みんな大好きTANAKAさんのサイト参考にしようとしたら Form上に配置するのに、その他のコントロールから選ばなきゃならなく成ってて ImageListに至っては追加はできてもプロパティ変更しようとするとエラー 64bitのせい? TANAKAの例はExcel2003で説明してるからなのか もはやオワコンなのか なぞ まぁ、後日のメンテとかも面倒そうだから、Sheet上に書き出すのがいちばん楽なんだろうな http://mevius.5ch.net/test/read.cgi/tech/1749348402/439
440: デフォルトの名無しさん [] 2025/07/19(土) 10:05:18.56 ID:TEpbrrsS >>437 きっとwin11はwindowsではない新種のOSなんだろう http://mevius.5ch.net/test/read.cgi/tech/1749348402/440
441: デフォルトの名無しさん [sage] 2025/07/19(土) 15:57:41.07 ID:ZTd2BQVd >>439 実行結果のファイルうpしてみて http://mevius.5ch.net/test/read.cgi/tech/1749348402/441
442: デフォルトの名無しさん [sage] 2025/07/19(土) 16:20:49.62 ID:A8cbKdEJ パス長いとかいい加減にしろとな http://mevius.5ch.net/test/read.cgi/tech/1749348402/442
443: デフォルトの名無しさん [sage] 2025/07/19(土) 16:52:52.55 ID:S5W6kZB3 >>441 ? リンク先に実行結果の画像出てるけど? 他に何を出せと? おれが実行した後のファイルなんて 中身まるごと見られたら困るものだらけだから、嫌なんだけど? http://mevius.5ch.net/test/read.cgi/tech/1749348402/443
444: デフォルトの名無しさん [sage] 2025/07/20(日) 12:26:16.14 ID:UYPMBFMH 見られて困るものだらけのPCって犯罪的な? http://mevius.5ch.net/test/read.cgi/tech/1749348402/444
445: デフォルトの名無しさん [] 2025/07/23(水) 07:42:55.14 ID:jnXMDL+k >>429 その様にコードを書いてマクロを作成するのに何日くらいかかりますか? http://mevius.5ch.net/test/read.cgi/tech/1749348402/445
446: デフォルトの名無しさん [sage] 2025/07/23(水) 08:46:08.98 ID:Rz/tc4F0 回避ルートが無い場合はエラーで止まる分は放置だな 下手なメッセージ出して止まるより分かりやすい http://mevius.5ch.net/test/read.cgi/tech/1749348402/446
447: デフォルトの名無しさん [sage] 2025/07/23(水) 10:53:39.46 ID:S2JD2z+w >>444 C:\ドキュメント\重要機密\A~E(1)\新しいフォルダ\巨乳物 >>445 俺はこの道30年、最近やっとコメントをしっかり書く習慣が身についてきた感じがしてる 昔も一応は書いてたけど、今見ると言葉が足りてなさすぎて解読に苦労する >>446 自分だけが使うんならいいけど、他人はエラーメッセージとかさっさと消しちゃったり自力で解決しようとして何が起きたかわからなくされちゃうからなあ http://mevius.5ch.net/test/read.cgi/tech/1749348402/447
448: デフォルトの名無しさん [] 2025/07/23(水) 19:11:51.35 ID:jnXMDL+k >>447 コメントですか AIに書かせると楽かもしれませんね http://mevius.5ch.net/test/read.cgi/tech/1749348402/448
449: デフォルトの名無しさん [sage] 2025/07/23(水) 20:20:01.08 ID:jSDoEOvR コメントは最低限しか書かないなあ リファクタリングしまくって、コメント書かなくてもわかるコードにする方がいいと思う 1〜2日で作成したら、最低1週間はリファクタリング期間 http://mevius.5ch.net/test/read.cgi/tech/1749348402/449
450: デフォルトの名無しさん [sage] 2025/07/23(水) 21:02:26.59 ID:3kQj9G/6 規模感がちょっとわからないけどテスト込みで手直し1週間? http://mevius.5ch.net/test/read.cgi/tech/1749348402/450
451: デフォルトの名無しさん [sage] 2025/07/23(水) 21:55:41.80 ID:jSDoEOvR 規模はまちまちだけど、この例ではテスト込みで作成1〜2日 完成後1週間は毎日コードを読み直す時間をとる すると何かしら改善点が見つかる 毎日読んでも何にも改善点なく1週間過ぎたらステーブル http://mevius.5ch.net/test/read.cgi/tech/1749348402/451
452: デフォルトの名無しさん [] 2025/07/24(木) 21:58:34.96 ID:GZnFTazm 複数のシートをpdf出力したいのです。 wb.Sheets(arr).Select ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=pdfPath の様に、ActiveSheetで指定するしか方法はないのでしょうか? ActiveSheetは明示的でないので避けたいです http://mevius.5ch.net/test/read.cgi/tech/1749348402/452
453: デフォルトの名無しさん [sage] 2025/07/24(木) 22:07:09.88 ID:CXis1mnI >>452 wb.Sheets(arr).ExportAsFixedFormat Type:=xlTypePDF, Filename:=pdfPath http://mevius.5ch.net/test/read.cgi/tech/1749348402/453
454: デフォルトの名無しさん [sage] 2025/07/24(木) 22:09:24.06 ID:GZcfs+u1 >>452 まずはAIに聞く癖を付けろ 以下の方法でActiveSheetを使わずに複数シートをPDF出力できます: ```vb wb.Worksheets(arr).ExportAsFixedFormat _ Type:=xlTypePDF, _ Filename:=pdfPath ``` `wb.Worksheets(arr)`で直接シートコレクションを指定すれば、ActiveSheetに依存せずに済みます。 http://mevius.5ch.net/test/read.cgi/tech/1749348402/454
455: デフォルトの名無しさん [sage] 2025/07/24(木) 22:21:03.69 ID:3SMUfFNx ↓は実行できるけど、 ThisWorkbook.Sheets(Array("Sheet1", "Sheet2")).Select ↓はエラーにならね? ThisWorkbook.Sheets(Array("Sheet1", "Sheet2")).ExportAsFixedFormat Type:=xlTypePDF, Filename:=pdfPath http://mevius.5ch.net/test/read.cgi/tech/1749348402/455
456: デフォルトの名無しさん [] 2025/07/24(木) 22:52:04.71 ID:GZnFTazm >>454 はい、AIは大嘘つき http://mevius.5ch.net/test/read.cgi/tech/1749348402/456
457: デフォルトの名無しさん [] 2025/07/24(木) 22:52:55.23 ID:GZnFTazm >>453 無理でーす http://mevius.5ch.net/test/read.cgi/tech/1749348402/457
458: デフォルトの名無しさん [] 2025/07/24(木) 22:53:12.34 ID:GZnFTazm >>455 正解! http://mevius.5ch.net/test/read.cgi/tech/1749348402/458
459: デフォルトの名無しさん [] 2025/07/24(木) 22:57:55.91 ID:GZnFTazm wb.Sheets(配列).Select ActiceSheet..ExportAsFixedFormat Type:=xlTypePDF, Filename:=Path でしかエラーになります http://mevius.5ch.net/test/read.cgi/tech/1749348402/459
460: デフォルトの名無しさん [sage] 2025/07/25(金) 01:14:02.16 ID:f/mD0P8I >>452 Selectが必要なことに変わりはないがActiveSheetを排除したいのならこう書ける wb.Sheets(arr).Select wb.Sheets(arr(0)).ExportAsFixedFormat Type:=xlTypePDF, Filename:=pdfPath http://mevius.5ch.net/test/read.cgi/tech/1749348402/460
461: デフォルトの名無しさん [] 2025/07/25(金) 01:45:35.35 ID:YmqTu82J >>460 それは複数シートではなく、単一のシートですよな http://mevius.5ch.net/test/read.cgi/tech/1749348402/461
462: デフォルトの名無しさん [sage] 2025/07/25(金) 07:52:00.89 ID:UfHu+jPG 変数使ってループさせるくらいの頭働かせられないくらい頭沸いちゃったのかな 暑いからね http://mevius.5ch.net/test/read.cgi/tech/1749348402/462
463: デフォルトの名無しさん [] 2025/07/25(金) 08:02:36.99 ID:YmqTu82J >>462 複数のシートを個別のpdfファイルにエクスポート、ではないです 複数のシートを1つのpdfファイルに、です これの方法がActiceSheet.ExportAsFixedFormatしか見つからなくて、ActiceSheetの様な曖昧な指定は嫌だなぁと思うのです http://mevius.5ch.net/test/read.cgi/tech/1749348402/463
464: デフォルトの名無しさん [sage] 2025/07/25(金) 08:22:07.09 ID:JviM2itp ActiveSheetを明示するだけでしょ 今のActiveSheetをテンポラリに持っておいて、 特定のシートをActivate それを書き出した後テンポラリをActivate http://mevius.5ch.net/test/read.cgi/tech/1749348402/464
465: デフォルトの名無しさん [sage] 2025/07/25(金) 08:40:06.97 ID:f/mD0P8I >>461 選択中のどれかのシートをエクスポートすれば選択シートすべてが出力される不思議仕様 http://mevius.5ch.net/test/read.cgi/tech/1749348402/465
466: デフォルトの名無しさん [sage] 2025/07/25(金) 09:10:21.07 ID:6JkrjnZc ActiveSheetはワークシート(単・複数)へのポインタみたいなものだよ シートを省略して書かれたメソッドは常にActiveSheetを対象操作にする http://mevius.5ch.net/test/read.cgi/tech/1749348402/466
467: デフォルトの名無しさん [] 2025/07/25(金) 12:31:12.82 ID:YmqTu82J そうだったんですか wb.Sheets(arr).Select 〜中略〜 ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=pdfPath と書いたにも関わらず、何故か出力されたpdfが1シートのみ という事があって、もしかしてcopy modeの様に、ちょっとした操作でシートのグループ化が解除されるのかなと思いました。 http://mevius.5ch.net/test/read.cgi/tech/1749348402/467
468: デフォルトの名無しさん [sage] 2025/07/25(金) 12:41:13.91 ID:7k67EuH4 そりゃ解除されるよ 選択していないシートをアクティベートしたりね ユーザー操作で違和感なく動作するのが大前提だから http://mevius.5ch.net/test/read.cgi/tech/1749348402/468
469: デフォルトの名無しさん [sage] 2025/07/25(金) 18:16:56.05 ID:O3RmL+0a >>466 >常にActiveSheetを対象操作にする シートモジュールでシート指定しないやつは、ActiveSheetじゃなくてそのシートだったと思ったが http://mevius.5ch.net/test/read.cgi/tech/1749348402/469
470: デフォルトの名無しさん [sage] 2025/07/25(金) 20:45:59.47 ID:6JkrjnZc VBの内部コード(Pコード)は解析されてるのかな AIに全部ぶち込んでしまえば、どういう理屈でという疑問は解消しそうだけど http://mevius.5ch.net/test/read.cgi/tech/1749348402/470
471: デフォルトの名無しさん [] 2025/07/26(土) 08:11:28.23 ID:ZNo9mvnh wb.Sheets(arr).Select wb.Sheets(2).ExportAsFixedFormat Type:=xlTypePDF, Filename:=pdfPath でもグループ化したシートが出力できるのですね 今知りました でも怖いですね wb.Sheets(2).Selectはグループ化解除だから http://mevius.5ch.net/test/read.cgi/tech/1749348402/471
472: デフォルトの名無しさん [sage] 2025/07/26(土) 13:26:56.16 ID:8rv+r4rK 名前付き引数書く派なんだなおまいらも http://mevius.5ch.net/test/read.cgi/tech/1749348402/472
473: デフォルトの名無しさん [sage] 2025/07/26(土) 14:28:31.18 ID:F1jFmomB ExportAsFixedFormat xlTypePDF, pdfPath,,,,,, 名前を覚えるか糞長引数の位置を覚えるかのトレードオフ http://mevius.5ch.net/test/read.cgi/tech/1749348402/473
474: デフォルトの名無しさん [] 2025/07/26(土) 15:15:43.28 ID://AUV0sR 別にどちらでもいい http://mevius.5ch.net/test/read.cgi/tech/1749348402/474
475: デフォルトの名無しさん [sage] 2025/07/26(土) 17:35:17.71 ID:UKLeI2W+ どっちの書式も覚えてない 検索で上位に出てきたコードをコピペするだけ http://mevius.5ch.net/test/read.cgi/tech/1749348402/475
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.026s