25/06/27 00:06:22.99 CrrZSRDf.net
>>258
死ねよ
263:デフォルトの名無しさん
25/06/27 01:32:00.89 wO5i3kHK.net
フォーマットに固執する人には一度Accessのレポートを触らせてデータ本体と閲覧用のフォーマットを分離する概念を身に着けさせたいな
Excelはそこら辺をごっちゃに出来るのが強みでもあり欠点でもあるよね
264:デフォルトの名無しさん
25/06/27 04:12:57.30 VhPWe6GM.net
まだ印刷してる会社があるのか。
VBAをAIに相談しながら作ってたらどんどん破壊された。
VBAのバージョン管理ってどうやってますかお前ら。前のに戻す機能ってありますか?orz
265:デフォルトの名無しさん
25/06/27 04:31:43.59 NUAImJKB.net
>>260
ハゲるな🦲
266:デフォルトの名無しさん
25/06/27 05:10:19.38 Xt6WxpXP.net
>>262
どんどん破壊される要素ありますか?
267:デフォルトの名無しさん
25/06/27 05:11:58.20 Xt6WxpXP.net
>>259
言ってないです
HTMLは一切知らないです
一言も喋っていない
せいぜいタグがあって、直書きするくらいですね
動的なサイトとか言われたらアウトです
268:デフォルトの名無しさん
25/06/27 05:34:45.13 Xt6WxpXP.net
>>251
私は本当に全くの無知だからAIに聞くこともできなければ回答の正誤の判断もできないんです
例えばXpathが出てきますが、PADでどうやれば使えるのか知りません。
IDも動的なのであまり使えなさそうな
269:デフォルトの名無しさん
25/06/27 06:13:21.76 h5r1gWAT.net
>>265
スレチって言われてるのに居続けるあたり、
無能な上人の話聞かないのがよく分かる
270:デフォルトの名無しさん
25/06/27 06:15:32.61 h5r1gWAT.net
>>262
そりゃあるよ
常に電子機器を前にできる仕事だけじゃない
271:デフォルトの名無しさん
25/06/27 06:32:19.98 Xt6WxpXP.net
>>267
私は人の要望しか聞いていないです
自分がこうしたいと言う話はしていない
272:デフォルトの名無しさん
25/06/27 06:42:55.07 /UgvnTX2.net
>>269
死ねよ
273:デフォルトの名無しさん
25/06/27 08:31:17.40 qG+K/EXj.net
わたしたちもあなたの不平不満愚痴ボヤキを読んでるだけで
解決策を提示できる・答えを知ってるとはひとことも言ってませんが悪しからず
274:デフォルトの名無しさん
25/06/27 08:31:36.13 Jv1SL4G2.net
無知を全面に出す人苦手
だから何? 君の親でもないけどって内心モヤッとしてる
スレチですまん
275:デフォルトの名無しさん
25/06/27 09:13:02.10 H+pgJuGy.net
最近はここに質問された内容をAIに聴いて
AIの返事をまたここにpostする行為が流行ってる
276:デフォルトの名無しさん
25/06/27 09:46:35.02 zT4r2O1m.net
そのAIの解答を評価してみりゃいいんでね?
277:デフォルトの名無しさん
25/06/27 10:25:38.18 w4/N1gL5.net
>>269
私も人の要望をよく聞きます
聞くだけなので答えませんがね
278:デフォルトの名無しさん
25/06/27 10:28:46.75 xoohJecr.net
AIと喧嘩したいんだけど
許可されたら死んでしまうかもしれないからここで加減を調節している段階にいるんだけど
279:デフォルトの名無しさん
25/06/27 10:45:24.90 cNRA8cKF.net
>>273
マトモな回答だとつまんないからズレた面白いAI回答を選んで貼ってください
280:デフォルトの名無しさん
25/06/27 12:38:13.98 Jv1SL4G2.net
>>277
ChatGPTに大喜利を考えてもらってみた。
なんか微妙
【大喜利 お題】「エクセルがついに自我を持った!さて、最初に言ったひと言とは?」
【回答】
Sub ExcelNoJiga()
MsgBox "ねぇ、また無駄な関数使ってるよね?"
End Sub
281:デフォルトの名無しさん
25/06/27 17:23:06.62 o1sxBVxM.net
chatGPTでもcopilotでもいいけどまともなコードが返ってこないなら自分のブロンプトが絶望的なのを認識したほうがいい
そう言い切っていいほど精度高いわ
282:デフォルトの名無しさん
25/06/27 18:10:56.90 hBRiuDb/.net
検索したら出てくるレベルの質問なら確実に答えてくれるが、どこにも例題がないやつは嘘しか言わない
結局はGoogle代行でしかない
283:デフォルトの名無しさん
25/06/27 18:55:03.45 O2xo65Fk.net
かつて誰も考えなかったすごい質問する俺様にAIはついてこれない
マッタク使えないZE
284:デフォルトの名無しさん
25/06/27 20:46:54.00 Jv1SL4G2.net
例えばどんなこと?
285:デフォルトの名無しさん
25/06/27 21:38:05.72 1l5DAmC+.net
>>280
おい言ってみろよ
それっぽいこと適当に言ってると低年収バレバレで失禁するぞ?
286:デフォルトの名無しさん
25/06/28 10:20:06.70 2ZQiHrFF.net
逃げたな
287:デフォルトの名無しさん
25/06/28 10:56:57.35 3Um/1PXm.net
>>280
ほんそれ
回答の末尾にしらんけど付けてくれ
知らないなら答えないで下さいうざいだけです
288:デフォルトの名無しさん
25/06/28 15:34:30.03 OhpHj5Et.net
会話の終わりに知らんがななんか付けたら関西人に成ってしまうだろ
そう言えば、関西系のシステムって見たことも触ったことも無いけど
やっぱあれかな? [はい][いいえ]ボタンなんか配置したら「何東京人ぶってんねん!」とか
罵られるから[そうでおま][ちゃいまんねん]とかなのかな? キャンセルは[やめときますb偰とか
いっぺん見てみたい
289:デフォルトの名無しさん
25/06/28 16:39:30.47 IggLVQ8p.net
VBAスレ史上でもワースト3に入るつまらなさ
290:デフォルトの名無しさん
25/06/28 17:20:22.34 uA5FL7Cc.net
>>286
昔々IT企業の同期のコンピューターに疎いやつ(文系)が言ってたことに似てる
プログラムの命令って何でIFとかなん
JKの日本語で「もし~"だったら~"xxする」("ら~"と伸ばすのまでが語w)とか書ければいいのにとw
バカにしたけどまあ文系の素朴な疑問なんやろなとは思った
日本語BASICとかがこの命令体系だったら、一部のマニアに流行ったのかもしれんなと思ったり
ちなみに大阪にある有名企業(の開発現場)で「もし」とかプログラム書いてたとこは存在した。そこで仕事したことある
今そう書いてるかは不明
291:デフォルトの名無しさん
25/06/28 18:58:07.89 vnGwMlU1.net
日本語のようなハイコンテキスト言語はプログラミング言語に向かない
292:デフォルトの名無しさん
25/06/28 19:31:48.97 LhFbdsON.net
形式言語としてのプログラミング言語の記号列に用いる記号をどのような記号集合から取ってくるかというだけの話で、ASCIIが便利だったってだけだと思うけど。
だから、自然言語としての日本語・英語の性質はあんまり関係ないと思う。構文論・意味論は個々のプログラミング言語で定義されるわけだし。仮に「もし~だったら」みたいに書けたとしても、期待に反して大して書きやすくはならないはず。
293:デフォルトの名無しさん
25/06/28 19:52:26.97 2qq3obCO.net
なでしこ言語(泣)
294:デフォルトの名無しさん
25/06/28 20:13:15.90 Me3Cyfy2.net
もしも あしたが晴れならばの歌詞は色々と論理が破綻してる
295:デフォルトの名無しさん
25/06/28 20:35:26.86 uZ2SW2TW.net
財源が無いはずなのに消費税で上振れしている税収の財源があるのも論理破綻している
296:デフォルトの名無しさん
25/06/28 20:44:32.94 uA5FL7Cc.net
>>290
その通り
普通にIF書いてたプログラマーからしたら全然書きやすくはない
しかし当時プログラマーなんて少ない時代に、わかりやすく書ける、読めることはメリットあった
例えば東京特許許可局という変数があったとき、これを英字にしたら読みやすさが激減する
苦肉の策な時代でした
(省略英字の日本語辞書を使って、ソースを読みやすくする現場もあった。SYH-ZEIを消費税とするような)
297:デフォルトの名無しさん
25/06/28 20:45:50.18 nr2U5Q2u.net
俺は変数の宣言は日本語にしてる
ひらがな、カタカナ、漢字
それでトラブったことがないの
298:デフォルトの名無しさん
25/06/28 21:46:41.03 IE4mXjww.net
だが日本語変換の切替えがだるい
299:デフォルトの名無しさん
25/06/28 22:01:41.58 uA5FL7Cc.net
>>296
変換をon、無変換をoffにしておくと楽
300:デフォルトの名無しさん
25/06/28 22:05:51.33 sSoEJ15o.net
一応こんなのはある
C++言語によるお嬢様コーディングがブームの兆し!?
URLリンク(forest.watch.impress.co.jp)
301:デフォルトの名無しさん
25/06/29 02:34:13.89 712DhJe3.net
こんなのも
URLリンク(eetimes.itmedia.co.jp)
302:デフォルトの名無しさん
25/06/29 08:26:19.87 MOD8edIy.net
改ページの点線を手動で移動させて1ページに収まる様に指定するのと(実はこれが自動改ページ)
横1ページ指定するのと(全列を1ページに収まる様に指定)
印刷した時の文字の大きさに差はありますか?
303:デフォルトの名無しさん
25/06/29 12:48:03.11 9LXkiqZz.net
シート上で指定した改ページはデータをページで区切るための指定
プリンター設定で拡大縮小できるし、紙が数ミリずれることもあるのでギリギリを狙うと失敗する
304:デフォルトの名無しさん
25/06/29 17:00:44.93 MOD8edIy.net
>>301
プリンターの設定で必ずこの行から2ページ目にする
という設定ができるのでしょうか?
とりあえず今日調べてなんとなく挙動がわかった様な気がします
考えれば当たり前の話ですが、行を追加すると余分なページが挟まれる可能性があるのと、空白だけど(何かしら書式設定された痕跡があるからか)印刷対象になってしまっている行を削除しないといけない
305:デフォルトの名無しさん
25/06/29 18:14:38.13 jfS/ezr/.net
印刷画面で1ページだけを5枚印刷とか
3,5~7ページだけを印刷とか指定できるので好きなページだけ印刷すればいいんじゃね
306:デフォルトの名無しさん
25/06/29 18:29:48.73 jfS/ezr/.net
印刷すること自体をマクロでやったこと無いが
プレビューを確認してよければ印刷するくらいにしないと
インクや紙が無駄になるぞ
1万件のデータ印刷したら100ページとかw
307:デフォルトの名無しさん
25/06/29 18:43:03.87 MOD8edIy.net
マクロから直接印刷はさすがにしてないです
pdf出力するのをしています
ちなみにどうしても縮尺指定にこだわりたい人の為に、縮尺指定→印刷プレビュー→印刷プレビュー閉じる→左右のページ数確認→ループのコードを書きました。
308:デフォルトの名無しさん
25/06/30 06:28:01.78 m9Iz5ero.net
Excelの知識がなさすぎるひと向けに作るのはやめた方がいい
309:デフォルトの名無しさん
25/06/30 11:45:51.43 jH/JIj4s.
310:net
311:デフォルトの名無しさん
25/06/30 11:49:50.48 JQmVBSaF.net
このスレで言うことか?
312:デフォルトの名無しさん
25/06/30 18:11:33.26 CUdrd9La.net
印刷やろうとしてる人に向けてだろ…
でも明らかにセンスも作り込みスキルもなさそうだから同意
313:デフォルトの名無しさん
25/06/30 20:01:12.87 9Mnf4Vk7.net
>>309
センスも作り込みスキルも無さそうでしょうか?
314:デフォルトの名無しさん
25/06/30 20:48:43.72 XO4EHMtF.net
>>310
ごめん、そんなことはないけど
印刷のVBA化に無理に固執するもんじゃない
マジで
昔経験したからわかる
315:デフォルトの名無しさん
25/06/30 20:54:02.73 9Mnf4Vk7.net
>>311
ありがとうございます
vbaで直接プリンターに飛ばすわけではありません
とりあえず改ページの仕様はいくらか理解できたと思います
316:デフォルトの名無しさん
25/07/01 00:25:06.97 AnMu1HLz.net
Chatさんに聞いてみたけど面倒くさそう。
' 例:20行目の上に改ページ(21行目から新しいページ)
余白2cm
Sub 印刷設定サンプル()
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("Sheet1")
With ws
.ResetAllPageBreaks
.HPageBreaks.Add Before:=.Rows(21)
With .PageSetup
.PrintTitleRows = "$1:$3"
.Zoom = False
.FitToPagesWide = 1
.FitToPagesTall = False
.Orientation = xlPortrait
.PaperSize = xlPaperA4
.LeftMargin = Application.CentimetersToPoints(2)
.RightMargin = Application.CentimetersToPoints(2)
.TopMargin = Application.CentimetersToPoints(2)
.BottomMargin = Application.CentimetersToPoints(2)
.CenterHorizontally = True
End With
End With
MsgBox "印刷設定を適用しました。"
End Sub
317:デフォルトの名無しさん
25/07/01 00:32:33.67 AnMu1HLz.net
続き。こういうのも多分いるよね。
指定した行数がA4印刷1ページに収まるかを調べ収まらない場合は改ページを設定する
各行の高さを合計して、ページ内に収まるかを判定。A4の印刷可能範囲の高さ(ポイント単位)と比較。オーバーするならその直前に 改ページを入れる。 A4用紙の印刷可能な高さ(おおよそ)
A4縦の高さ:29.7 cm = 約842 pt
上下余白(例):2cm + 2cm ≒ 113 pt(計)
⇒ 実質印刷可能範囲:約729 pt
※余白・ヘッダー・フッターにより変動
コード例
Sub 自動改ページ_行数と印刷高さを基準に()
Dim ws As Worksheet
Dim i As Long
Dim rowHeightSum As Double
Dim printHeightLimit As Double
Dim lastRow As Long
Set ws = ThisWorkbook.Sheets("Sheet1")
ws.ResetAllPageBreaks
' 印刷可能な高さを計算(A4縦:842pt - 上下余白 約113pt)
printHeightLimit = 842 - 113
rowHeightSum = 0
lastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row
For i = 1 To lastRow
rowHeightSum = rowHeightSum + ws.Rows(i).RowHeight
If rowHeightSum > printHeightLimit Then
' この行の直前で改ページを入れる
ws.HPageBreaks.Add Before:=ws.Rows(i)
rowHeightSum =ws.Rows(i).RowHeight ' 次ページの高さリセット
End If
Next i
MsgBox "改ページを設定しました。"
End Sub
318:デフォルトの名無しさん
25/07/01 07:51:53.41 hLMayhbM.net
>>313
このコードは何をしているかというと、
21行目の上 つまり20行目と21行目に改ページを設定して
上にヘッダー?を設定して
縮尺解除
全列を1ページに収める
行のページ数は自動
用紙サイズはA4
という設定をしています
しかし、改ページの設定は
改ページビューの青い点線(実はこれが自動改ページ)ではないから
1ページと2ページに余分な空白のページが挟まる
319:デフォルトの名無しさん
25/07/01 12:47:55.21 cyOlFSbV.net
インスパイアされて作ってみた
関西のコミュニケーションの多様性にはリスペクトしか無い
URLリンク(89.gigafile.nu)
ネィティブでは無いので誤りが有ったら指摘もらえば改良もやぶさかではない
Captionだけじゃ物足りないので喋らせてみたが、これが結構ドツボ
ExcelでのSpeakは、まだまだ途上らしい
320:デフォルトの名無しさん
25/07/01 21:04:55.51 hLMayhbM.net
>>316
何をお作りになられたのでしょうか?
321:デフォルトの名無しさん
25/07/01 23:30:56.43 uDpPxP0Z.net
俺氏、VBAで去年社内最優秀賞30万
今年はちょびちょび改善で出して1万6500円
抜群のセンスだわさ
322:デフォルトの名無しさん
25/07/02 00:01:46.59 0vwAlXoU.net
そう思うならさっさと転職して本職のITエンジニアになった方が稼げるよ
323:デフォルトの名無しさん
25/07/02 02:51:17.71 g2KaZT8X.net
AI時代にここの質問スレは盛況なのは何故だ
324:デフォルトの名無しさん
25/07/02 03:40:33.29 fiQBdOaz.net
AIがイマイチだから
325:デフォルトの名無しさん
25/07/02 07:59:03.99 02hJ4H7c.net
AIに書かせることはできても、それの検証はどのみち必要だから
326:デフォルトの名無しさん
25/07/02 08:13:15.57 h5Fr+SaE.net
ガイジだけど質問ある?
死にたいガイジ…空気読めないガイジ…死にたいガイジ…
327:デフォルトの名無しさん
25/07/02 08:19:12.11 q22wzhF/.net
AIはうそつきだし
適度に事実も混ぜてくるから一番やっかい
328:デフォルトの名無しさん
25/07/02 08:29:36.52 8Lvzc6gd.net
やっかいだと思うなら使わなけりゃ良いだけなのに、
他人にもそうさせようとするのはなんで?
329:デフォルトの名無しさん
25/07/02 08:36:59.95 QMHVqlVc.net
>>317
[はい][いいえ]を関西弁で、という話題にインスパイアされて
・一つのユーザーフォームを使い回しできる方法
・セルの文字をボタンやラベルのキャプションにしてしまう方法
・何ならしゃべらせる方法
関西弁に限らず、広島弁でも博多弁でもかごんま弁でもとーほぐ弁でもご随意に
リンク先の[ダウンロード開始]ボタンで落とせる
うかつに開くといきなりダイアログが出てきてしゃべりだすので音量注意
OSに入ってるナレーターは、Haruka、Ayumi、Sayaka、Ichiroと選べるはずが
Wordと違ってExcelだとデフォルトのHaruka限定にされて変えられないとのことで
そこがドツボだった まぁ幸い解決方法を指南してくれてるサイトに辿り着けた
喋ってる間は全リソース奪われて他の操作は一切出来なくなるのは、如何ともし難いのか
330:デフォルトの名無しさん
25/07/02 08:47:20.48 q22wzhF/.net
関西弁のyes/no
それはええ/それはええ
331:デフォルトの名無しさん
25/07/02 08:49:18.32 q22wzhF/.net
>>325
個人の中で完結ならいいけど、AIの嘘回答でドヤってくるのが迷惑
332:デフォルトの名無しさん
25/07/02 08:52:51.46 8Lvzc6gd.net
>>328
嘘回答でドヤってきた奴に言えよ
十把一絡げに迷惑って言い散らかすのも充分迷惑だと気付かないのか?
333:デフォルトの名無しさん
25/07/02 09:23:01.60 IvKsZJU4.net
AIにも種類あるからなぁ
問い方にもよるし
334:デフォルトの名無しさん
25/07/02 09:28:17.31 sOTx1Ysw.net
AIにテストとバグ取りまでやらせろ
335:デフォルトの名無しさん
25/07/02 11:09:29.63 QMHVqlVc.net
>>327 ww
336:デフォルトの名無しさん
25/07/02 12:42:29.90 PqQB+KG0.net
AIに作らせて出来てなかったら投げかけるだけだろ
こんなIT音痴な奴がVBA触ってる事にビビる大木
337:デフォルトの名無しさん
25/07/02 19:40:08.71 WTqAcEsV.net
AI使って嘘の回答だったら質問変えたりコード直せばいいだけでしょ。
実際自分で調べるよりもめちゃくちゃ早いし便利に使えてるよ。
人間は平気で嘘つくのにAIに嘘つくなって求めるのはおかしいでしょ。
338:デフォルトの名無しさん
25/07/02 20:01:38.68 0vwAlXoU.net
VBAの場合は他のメジャーなプログラミング言語と比べて平均的な人間とAIの差が大きすぎるから、いきなりゼロショットで指示すると期待通りの結果が得られにくい
もちろんAIの方が上だ
AIに対して予め既存のコードをサンプルとして与えてあげてレベル感を知ってもらうと、いい感じに合わせてくれるよ
339:
25/07/03 10:04:12.85 q23h/8z8.net
「嘘の回答だったら」
そもそも嘘かどうか知ってるなら聴く必要が無い
結局嘘じゃないことを調べるのにそれ以上に時間がかかる
340:デフォルトの名無しさん
25/07/03 10:05:56.29 q23h/8z8.net
「人間は平気で嘘つくのに嘘つくなって求めるのはおかしい」
判らんのに平気で嘘回答するネラーも多い罠
341:デフォルトの名無しさん
25/07/03 10:16:58.13 gVoGF6e7.net
政治家の財源がないは嘘
342:デフォルトの名無しさん
25/07/03 10:28:29.92 q23h/8z8.net
學歴も嘘
343:デフォルトの名無しさん
25/07/03 10:37:23.12 cEJAYS/6.net
>>337
だから話半分に聞くだろ?
AIの回答もそういう姿勢で、参考にはするけど盲信しないことが大事
全部鵜呑みにするならそいつももはやAIと変わらん
344:デフォルトの名無しさん
25/07/03 10:44:24.00 q23h/8z8.net
340
どうみてもAI以下です
345:デフォルトの名無しさん
25/07/03 20:41:52.66 1CjDULGZ.net
こんなAIの本質をわかってないような奴らが作るVBAなんてたまらんよ
346:デフォルトの名無しさん
25/07/03 20:45:28.43 NNwfFfCt.net
>>342
AIのプロフェッショナル様だ!
我らに叡智を与えたまえ!
347:デフォルトの名無しさん
25/07/03 21:14:39.37 zL884xZP.net
どこの誰がなにをどう作ろうとも、その成果物に実際に触る訳でも無いし
それに依って迷惑を被る訳でも無いだろ?
ナニを上から目線で大口叩いてんだか
偶々そのソースを目にすることがあろうとも、評価してくれと頼まれた訳でも無いし
VBA評議会の高位評議員という立場でも無いだろ 何がしたいん?
348:デフォルトの名無しさん
25/07/03 22:51:34.02 IBfGzwrB.net
>>336
AIに質問すればコードの1行ずつ丁寧に解説してくれるけどそれでも正しいかどうか調べるのに時間がかかるの?
349:デフォルトの名無しさん
25/07/03 22:55:11.76 x0A3mg3D.net
それをAIに1行ずつ丁寧に解説させて、その内容をさらにAIに解説させて.....以下略
350:デフォルトの名無しさん
25/07/03 23:14:39.22 1CjDULGZ.net
どんだけAIに質問投げるの下手なんだよマジでよー
351:デフォルトの名無しさん
25/07/03 23:19:49.48 IBfGzwrB.net
人間と同じで相性なんですかね。
合わないものは合わないのかなぁ。
352:デフォルトの名無しさん
25/07/04 08:07:10.89 3EnEQ/Df.net
>>345
AIだろうと人だろうと成果物のテストするだろ
何のためにテストすると思ってるの?
353:デフォルトの名無しさん
25/07/04 09:00:20.43 fF3rQ1JL.net
AIに投げる質問を造るのがうまいと言うことは既にAIに聴く必要が無いんだわ
354:デフォルトの名無しさん
25/07/04 13:21:56.31 3EnEQ/Df.net
それは違う
プロンプトエンジニアリング能力と他の能力は別物
355:デフォルトの名無しさん
25/07/04 15:02:13.77 pEhONqjq.net
だったらAIにでも話してろよ
356:デフォルトの名無しさん
25/07/04 18:27:01.53 0E9WgSh7.net
一生懸命コードの基礎学んだのにセンスが無い奴は必死になるよなそりゃ
357:デフォルトの名無しさん
25/07/04 19:13:39.58 3EnEQ/Df.net
>>353
?
358:デフォルトの名無しさん
25/07/04 21:05:20.15 rizrt2ys.net
>>349
言いたいことがよくわからないです。
おっしゃってるようにAIでコードを書いても人で書いてもテストはします。
ただAIで書いたコードのテストは人のコードより時間がかかるというお話ですか?
丁寧にAIに教えてもらえても?
AIは関係ないと思うけど違うのかな。
359:デフォルトの名無しさん
25/07/04 21:22:07.36 JLFKZ1OE.net
>>355
どこの何をテストする必要があるのかを判断できる能力がある、
もしくはどこの何をテストする必要があるかを導くプロンプトを書ける、
もしくは必要な箇所なテストまで終えるプロンプトをかけるなら問題ない
360:デフォルトの名無しさん
25/07/05 06:16:26.93 +cv+JpUz.net
>>356
例えばCSVファイルを開くときのテストケースを教えてってAI聞いてみたけど答えてくれたよ。
VBAでCSVファイルを開く処理に対して、以下のようなテストケースを行うと、動作の信頼性やエラー対策が強化できます。
主なテストケース一覧
・CSVファイルが存在し開ける 正常にファイルを開けることを確認
・ファイルが存在しない場合 指定されたCSVが見つからない場合の対処
・既に開かれているブックかどうかを確認
・読み取り専用のCSVを開けるかどうか のテスト
・空のCSVファイル 内容が空でもエラーにならないか確認
・文字コードに関わるデータが正しく読めるかのテスト
・CSVの列数・行数が極端に多い たくさんのデータがあるときの パフォーマンスの確認
・ダブルクォートやカンマを含むセル "東京,品川"のようなセルが正しく
361:扱われるか セル確認 ・ファイルロックされている場合のエラー回避の確認
362:デフォルトの名無しさん
25/07/05 06:51:38.76 pq8ewG8r.net
>>357
それだとハルシネーションが含まれていた場合のことを考慮できてない
363:デフォルトの名無しさん
25/07/05 08:48:09.96 rEK7AeQH.net
>>357
余計な型変換に関する確認が必要
0312345678 → 312345678
1-2 → 1月2日
364:デフォルトの名無しさん
25/07/05 08:57:41.98 rEK7AeQH.net
古いExcelでは先頭がIDだとSYLK扱いされる問題もあるな
365:デフォルトの名無しさん
25/07/05 09:10:19.51 +boHNEOG.net
>>357
csvファイルへのショートカットだった場合のチェックがない
開くと読み込みを一緒にしているのが気になった
その前にもともと自力でできる作業なら初めからAIは使わないだろうし
AIが示さない項目を無視していいかの判断ができるのかな
主な項目だからそれ以外もあるよとか後になって言うのはどうかと思うし
366:デフォルトの名無しさん
25/07/05 09:13:22.18 gPk7JHhb.net
ショートカット?これは馬鹿のふりしてるの?
367:デフォルトの名無しさん
25/07/05 09:31:15.35 vyFcCxL+.net
ショートカットでもcsv開くことがあるがcsvでないことはしっている
368:デフォルトの名無しさん
25/07/05 09:35:20.09 eCCJvae8.net
既にAIの知能が人間を遥かに超えており、ボトルネックがバカな人間であることがよくわかるスレ
369:デフォルトの名無しさん
25/07/05 09:46:16.30 vyFcCxL+.net
うちの環境が普通でないなら無視してくれて構わんよ
370:デフォルトの名無しさん
25/07/05 09:55:15.54 Pf7qA/Ja.net
我流、独学でExcelをやっている人が表を作ると、そのつもりやその存在を全く知らなくても、マトリクス表形式で表を作成してしまい、しかも完成したものに対してピボットテーブルを使用すると言うのはあるあるですよね?
371:デフォルトの名無しさん
25/07/05 10:34:06.26 +cv+JpUz.net
>>358
それを自分で確認したらダメなんです?
>>359
>>360
>361
指摘ありがとうございます。
主な一覧だったのでテスト例はさらに出てきたかもしれないです。
開くと読み込むは問い合わせ方が悪かったかもです。
AIで出てこなかった項目が無視できるかどうかの判断は難しいですね。
明らかにテストしなきゃいけない項目がAIで抜けててAI丸投げで作った製品を納品されると怖いものがありますね。
ただAI丸投げの流れは止められないでしょうね。
372:デフォルトの名無しさん
25/07/05 11:46:24.77 dpOItoML.net
>>357
CSVカラムの途中で改行が入る場合
373:デフォルトの名無しさん
25/07/05 15:15:49.95 y/LWjdC1.net
「俺が流れを止めるからお前は先に行け!」みたいなこと言ってみたいね
374:デフォルトの名無しさん
25/07/05 15:50:51.02 8jsOt+Pc.net
「その作業が本当に必要かどうか、もう一度考え直す」
375:デフォルトの名無しさん
25/07/05 19:53:47.88 AqSnrZiN.net
>>370
それはVBA職人的にはタブーでしょ
人力でやってた仕事というのは、自動でやるなら本質的にはそもそもやる必要のないものが多い
VBAはワークフローの改善に踏み込むことなくただ人力作業を単純に自動化するのが王道で、
仕事の意味を問うてしまうとVBAの仕事が減ることに繋がる
376:デフォルトの名無しさん
25/07/05 22:49:12.14 +cv+JpUz.net
>>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形式のファイル
377:デフォルトの名無しさん
25/07/05 23:41:01.05 8jsOt+Pc.net
>>372
・パスが長すぎる場合
・処理系による改行コードの違い
・ファイル全体でダブルクォートが奇数個(閉じられていない)
・巨大すぎる(項目のサイズ、項目の数、行数)
・ファイルの破損(バイナリデータ混入など)
・ファイルシステムの破損、不良セクタなど
378:デフォルトの名無しさん
25/07/06 02:30:01.30 N2XXWgcj.net
>>372
Workbooks.OpenでCSVを読むならテスト項目ほとんど要らなくね?
テキストファイルとして読んで、列と行の分割処理をするなら、
CSVのフォーマット定義を先にやらないとテスト項目作れなくね?
読み込みファイルの指定方法も先に決める必要がなくね?
379:デフォルトの名無しさん
25/07/06 06:55:32.42 hfT56Vvk.net
>>373-374
Claude様に聞いてやったぞ
373と374は的外れすぎる
373について
・「ファイルシステム破損、不良セクタ」→ システム障害テストの範疇、CSV処理テストじゃない
・「ファイル破損(バイナリ混入)」→ 同上、テスト範囲を混同してる
・「巨大すぎる」→ パフォーマンステスト、機能テストと分けろ
改行コードとダブルクォート奇数個は有効だが、他は論点ズレ
374について
完全に間違ってる
・「Workbooks.Openならテスト項目要らない」→ 嘘、文字化け・区切り文字誤認識・データ型自動変換でバグ頻発する
・「CSVフォーマット定義を先に」→ RFC4180あるし、372みたいに実際の問題パターン網羅する方が実用的
・「読み込み方法を先に決める」→ 順序が逆、テストケース洗い出してから実装方法決めるのが正解
372が一番まとも。実際の開発で遭遇する問題を的確に押さえてる
380:デフォルトの名無しさん
25/07/06 08:00:56.53 N2XXWgcj.net
>>375
外部仕様を先に決めるべきという意味だったんだけど、それも間違ってんの?
CSV=RFC4180というのは一般的じゃない気が・・・
Workbooks.Openを使うなら、「CSVフォーマットはExcelのAPIのそれ」で決定だからAPI動作の二重チェックは不要かな~と。
381:デフォルトの名無しさん
25/07/06 12:05:21.27 Jlu3MuzZ.net
セマフォは?
別プロセスが同じファイルを開いてるから今は処理すべきでない、とか
382:372
25/07/06 21:01:04.07 jU0PBm+8.net
すみません。
昨日テストケースをすべて載せるつもりだったのですが書き込み制限で書けず途中で諦めました。
テストケースは37項目まであります。
383:デフォルトの名無しさん
25/07/07 09:23:50.46 GhKlbyJu.net
だが、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
384:デフォルトの名無しさん
25/07/07 10:00:11.48 xGHCrZSN.net
>>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使え
385:デフォルトの名無しさん
25/07/07 10:31:44.26 GhKlbyJu.net
>>380
変数宣言は行数の都合でカットしたのでCopilot君は悪くない
386:デフォルトの名無しさん
25/07/07 14:15:38.83 quoGln+a.net
>>379
ChatGPTだとこんな感じですね。
そのまま貼り付けたので全角も見てくれてる。
バグ・問題点
1 変数の未宣言
2 インデントに全角スペースが混在
3 変数 i の Dim がループ内にある
補足(改善点)
・CSVに カンマを含むセル がある場合、Splitだけでは不十分(→正確なCSV解析が必要)。
・ファイル存在チェック (Dir(FilePath) など) を入れるとより堅牢になります。
・Shift-JIS以外の文字コード(例:UTF-8 BOM付き)は Open では正しく読み込めないことがあります。
387:デフォルトの名無しさん
25/07/07 22:35:59.87 CvRTuASj.net
バグも直してもらえばいいんじゃね
388:デフォルトの名無しさん
25/07/08 00:47:00.39 urjDQqc8.net
今日の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:=完全パス
直った
389:デフォルトの名無しさん
25/07/08 01:58:30.92 9X9f1TC3.net
Format:=6なんて絶対使わないのに、どこからコピペしてきたんだよ
390:デフォルトの名無しさん
25/07/08 10:53:17.46 Lf/Jcjxk.net
馬鹿の上塗り
391:デフォルトの名無しさん
25/07/08 16:04:18.48 J6qvAQ9A.net
このスレ沼しか居ねぇな…google ai studioの方がまだ良い解答してくれんぞ…
392:デフォルトの名無しさん
25/07/08 17:01:18.70 G3ulfBZW.net
>>387
とても鋭い視点です。さすがですね!
393:デフォルトの名無しさん
25/07/08 17:33:24.49 BCBq8ImS.net
studio と名付けられてる意味わかってんのかな?
中の人はGeminiそのものらしいじゃんか
394:デフォルトの名無しさん
25/07/08 17:42:58.67 yBGpSZNW.net
>>389
その論理だとChromeとChrome OSも比較できないことになるが?
同じモデル使ってても実装・UI・機能が違えば体験は全然違うぞ
StudioはAPI統合やパラメータ調整できる開発者向けツール、コンシューマー版Geminiとは設計思想が違う
「中の人が同じ」で比較無意味論は技術理解が浅すぎる
387の解答品質指摘は妥当な比較対象だし、実際のユーザー体験差を無視してる時点で的外れ
とAI様が仰せになっている
395:デフォルトの名無しさん
25/07/08 18:21:34.45 urjDQqc8.net
>>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
396:デフォルトの名無しさん
25/07/08 18:33:40.30 G3ulfBZW.net
うちでは2って教えてくれた
397:デフォルトの名無しさん
25/07/09 08:08:49.40 NYgpwKZ5.net
つまり、開発環境てことだろ? その中の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同士で比較して見せるとかならまだしも
まあ、おれにはどうでもいいんだけど、ブレインストーミングがてらにしたためてみました
398:デフォルトの名無しさん
25/07/09 08:48:44.88 /UzV6WSq.net
スレ違いの長文とか救えない
399:デフォルトの名無しさん
25/07/09 09:32:08.40 EKMDM/sM.net
391
x 間違って記憶している
o 過學習でアホになった
400:デフォルトの名無しさん
25/07/09 10:08:19.13 MuvaPJLR.net
LLMで過学習…?
401:デフォルトの名無しさん
25/07/09 10:36:50.67 1h9feY7y.net
391
x 間違って記憶している
o 円形脱毛症でハゲになった
402:デフォルトの名無しさん
25/07/14 13:04:26.89 GLg5N4aG.net
URLリンク(forest.watch.impress.co.jp)
「JScript」に代わり「JScript9Leg
403:acy」が既定のスクリプトエンジンに ~Windows 11 24H2以降で
404:デフォルトの名無しさん
25/07/15 10:46:15.47 1v3q9PKm.net
Windows11の24H2にしたらJScriptが動かない
URLリンク(blog.macorin.net)
405:デフォルトの名無しさん
25/07/15 11:19:52.18 IENqpxZQ.net
毎日夜中の定刻に、気象庁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
406:デフォルトの名無しさん
25/07/15 11:31:18.20 izh84eSC.net
>>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が無難です。
407:デフォルトの名無しさん
25/07/15 11:33:01.33 l/eryieH.net
vbsに近いならjsだろう
408:デフォルトの名無しさん
25/07/15 11:52:00.35 1v3q9PKm.net
PowerShellは遅くてびっくりするのと
COM(IDispatch)経由の操作なので基本的に書き方はvba/vbsを踏襲する
普通に使うと割とつまらない
409:デフォルトの名無しさん
25/07/15 11:53:44.70 SjeLYLBh.net
>>400
スレ違い
410:デフォルトの名無しさん
25/07/15 13:45:04.50 IENqpxZQ.net
>>401,403
ありがとう。やってみる。
411:デフォルトの名無しさん
25/07/15 18:57:22.18 F7nJfSiA.net
やっぱり馬鹿かよ
412:デフォルトの名無しさん
25/07/16 22:35:52.90 6RqIkTEU.net
目的のフォルダを取得する効率的なコードを教えてください
1番効率的なのはフォルダのフルパスそのものを取得する事ですが、それも難しいので各階層の部分一致でお願い致します
413:デフォルトの名無しさん
25/07/16 22:45:55.20 NiCGeJue.net
パスが流動的ってこと?
指定する以外にやったことないわ
414:デフォルトの名無しさん
25/07/16 23:01:32.70 IRXrFh0B.net
部分一致が複数あるとして、その順番が入れ替わる可能性があるかどうかでコードが変わるね
415:デフォルトの名無しさん
25/07/17 00:19:01.17 zBpNwhAR.net
コード\分類\フォルダ\期間別フォルダ\探したいファイル
みたいな感じですね
416:デフォルトの名無しさん
25/07/17 00:24:00.03 Nf2HlQRn.net
>>405
Powershellからcom呼ぶときはしっかりお片付けしてね
適当にやるとC#と一緒でゴミが残る(かも)だから
417:デフォルトの名無しさん
25/07/17 01:52:47.41 gLLqR9ZX.net
>>407
馬鹿は「効率的」は何が効率的なのかとかすら説明できない
418:デフォルトの名無しさん
25/07/17 05:21:40.06 tC2PFukj.net
馬鹿じゃなきゃこんなところで聞かない
419:デフォルトの名無しさん
25/07/17 07:17:52.06 wYenyBlK.net
こう言うことなんじゃないの? ディレクトリ(フォルダ)名が曖昧な記憶だから
漠然とした検索してファイル見付けたい とかなんじゃ
URLリンク(www.limecode.jp)
3パターン提示してくれてるから、どれでもお好きなもので・若しくは全部使ってもいいし
一年365日ばかしか書けない誰かさんは無視しとけばいいよ
彼は馬鹿と書き込むのがじぶんのDutyだと思い込んでる節があるし 認知の病なんだろうきっと
420:デフォルトの名無しさん
25/07/17 07:36:40.82 rYvcj5zc.net
彼はこんなとこでしかマウントとれないかわいそうなやつなんだ
そっとしといてあげよう
421:デフォルトの名無しさん
25/07/17 07:41:07.22 aYpECmLq.net
>>407
目的のフォルダはどうやって示されてるの?
効率的っていうのは、何に対するパフォーマンスを指してる?
422:デフォルトの名無しさん
25/07/17 08:47:01.58 sGHKyXGW.net
>>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
423:デフォルトの名無しさん
25/07/17 09:28:10.58 TqONBLPd.net
あたしゃ、ディレクトリ関係は「見える」の重視で、このあたり参考にしてワークシート関数でやっちゃうけど
URLリンク(qwerty.work)
424:デフォルトの名無しさん
25/07/17 20:37:37.93 zBpNwhAR.net
>>417
正規表現の様な事ができたのでしょうか?
425:デフォルトの名無しさん
25/07/17 20:38:38.98 zBpNwhAR.net
>>416
例えばファイルシステムオブジェクトの再帰処理で全フォルダをループしてしまうのは非効率だなぁという事です
426:デフォルトの名無しさん
25/07/17 21:05:30.67 zBpNwhAR.net
>>417
本当に複数の階層で部分一致できますでしょうか?
427:デフォルトの名無しさん
25/07/17 23:17:21.95 mypLb9KX.net
釣りでなければ真正馬鹿で確定
428:デフォルトの名無しさん
25/07/17 23:26:46.72 DMF1qliv.net
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
429:, 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
430:デフォルトの名無しさん
25/07/18 03:56:36.13 kCxulfmG.net
若い子はChatGPTのことチャッピーと呼んでる
431:デフォルトの名無しさん
25/07/18 08:09:47.41 JhLn+KYd.net
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
432:デフォルトの名無しさん
25/07/18 08:22:30.72 avd6O0J8.net
>>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
433:デフォルトの名無しさん
25/07/18 09:23:27.37 J+L+9run.net
要件定義せず走り出すとこうなるという見本
434:デフォルトの名無しさん
25/07/18 10:47:27.74 kfpMJi4P.net
ま、それぞれがこれに取り組むことで、それなり成長する(こともある)んだから、いいじゃん
外野から思索も模索もせずにつべこべ小言書くことしかできないご老体には言わせときゃいいだけ
相談者、夜中にしか出張って来ないから、日中に迷走するのはやむを得ない
やりたいことは何となく見えてきたけど、それをどう実装したいのか?誰に使わせたいのか?何のために作るのか?
とかがイマイチ漠然としてて、方向ぐらいは提示して欲しいのはある
エクスプローラー開いて検索じゃあダメな理由とか、ファイルじゃ無くてフォルダ(名)に拘ってるように読めて
例えば、各々が勝手にフォルダ作ってファイル放り込んでるのを是正したいんだ、とかなのか
もう一歩踏み込んだ相談が出て来るまで待機、も有り得る
435:デフォルトの名無しさん
25/07/18 16:30:22.97 aPZeO8n7.net
VBAの作り方が上手すぎて情シスに異動させられそうになったセンスの塊こと俺だけどよく構文を知ってるとかテキスト通りにとか気にしてる奴は3流よ
使用者の使いやすさにまず全振り
次に拡張性を気にすりゃメンテナンスもしやすくなる
エラー回避しない奴は論外
でも結局はどう動かすかなんよ
436:デフォルトの名無しさん
25/07/18 16:43:02.04 AbgnUBWx.net
Aという処理をVBAでさせようってお手本みたいなコードを書いてもそのA自体にセンスが無い奴が多いんだよな
それが役職も評価も年収も上がらないVBAを勉強しただけのおぢさん
437:デフォルトの名無しさん
25/07/18 17:25:18.33 kfpMJi4P.net
>>427 読み直したら、ID末尾runだけに?
438:デフォルトの名無しさん
25/07/18 18:03:06.70 tx5irUc8.net
>>431
みんながみんなエスパーしながら好きに書いてる何を読み直すの?
439:デフォルトの名無しさん
25/07/18 20:55:57.57 kfpMJi4P.net
わかんなきゃいいよw カリカリすんなよ
フォルダ名を取得する記事見付けた 検索文字で絞る事もできる *とか?とかも要らん
URLリンク(tmkr7788.livedoor.blog)
で、一番上のフォルダ指定するのが手入力っぽいから、それも自動取得するなら
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
これを別ボタンに貼り付ければ、ディレクトリ探すのもマウスオペだけで済む お好みだけど
※ ほにゃらら部分は、デフォルトで指定しときたいフォルダ名に
440:デフォルトの名無しさん
25/07/18 21:22:07.30 VbDqcBb9.net
>>431
これ何言ってるのか理解できない
なにがrunだけに、なのか
441:デフォルトの名無しさん
25/07/19 04:46:02.20 s8PmOx3D.net
>>45
え、Accessは2027年で使えなくなるの!?
442:デフォルトの名無しさん
25/07/19 06:29:44.25 QjhfSjEw.net
>>433
馬鹿
443:デフォルトの名無しさん
25/07/19 07:33:32.95 xtuIEHIA.net
>>435
Access2027が最後のAccessになるって、
Windows10が最後のWindowsになるって言ったMicrosoftが言ってた
444:デフォルトの名無しさん
25/07/19 08:03:25.99 hkkuRgMQ.net
昨日初めてwin12て使ってる記事見たわ
445:デフォルトの名無しさん
25/07/19 09:32:36.51 S5W6kZB3.net
指定したフォルダ以下の、サブフォルダとファイルを取得する記事も見付けた
>>433 のは、フォルダのみだけど、その中身もそのファイル情報も見れるのはいい
何よりシンプル 開きたい場合は上のを参考にすればいいと思う
URLリンク(akira55.com)
ExcelにTreeViewって無かったっけ?とか思い直してググってて辿り着いた
TreeViewを実装しようと試みて、みんな大好きTANAKAさんのサイト参考にしようとしたら
Form上に配置するのに、その他のコントロールから選ばなきゃならなく成ってて
ImageListに至っては追加はできてもプロパティ変更しようとするとエラー 64bitのせい?
TANAKAの例はExcel2003で説明してるからなのか もはやオワコンなのか なぞ
まぁ、後日のメンテとかも面倒そうだから、Sheet上に書き出すのがいちばん楽なんだろうな
446:デフォルトの名無しさん
25/07/19 10:05:18.56 TEpbrrsS.net
>>437
きっとwin11はwindowsではない新種のOSなんだろう
447:デフォルトの名無しさん
25/07/19 15:57:41.07 ZTd2BQVd.net
>>439
実行結果のファイルうpしてみて
448:デフォルトの名無しさん
25/07/19 16:20:49.62 A8cbKdEJ.net
パス長いとかいい加減にしろとな
449:デフォルトの名無しさん
25/07/19 16:52:52.55 S5W6kZB3.net
>>441 ? リンク先に実行結果の画像出てるけど?
他に何を出せと? おれが実行した後のファイルなんて
中身まるごと見られたら困るものだらけだから、嫌なんだけど?
450:デフォルトの名無しさん
25/07/20 12:26:16.14 UYPMBFMH.net
見られて困るものだらけのPCって犯罪的な?
451:デフォルトの名無しさん
25/07/23 07:42:55.14 jnXMDL+k.net
>>429
その様にコードを書いてマクロを作成するのに何日くらいかかりますか?
452:デフォルトの名無しさん
25/07/23 08:46:08.98 Rz/tc4F0.net
回避ルートが無い場合はエラーで止まる分は放置だな
下手なメッセージ出して止まるより分かりやすい
453:デフォルトの名無しさん
25/07/23 10:53:39.46 S2JD2z+w.net
>>444
C:\ドキュメント\重要機密\A~E(1)\新しいフォルダ\巨乳物
>>445
俺はこの道30年、最近やっとコメントをしっかり書く習慣が身についてきた感じがしてる
昔も一応は書いてたけど、今見ると言葉が足りてなさすぎて解読に苦労する
>>446
自分だけが使うんならいいけど、他人はエラーメッセージとかさっさと消しちゃったり自力で解決しようとして何が起きたかわからなくされちゃうからなあ
454:デフォルトの名無しさん
25/07/23 19:11:51.35 jnXMDL+k.net
>>447
コメントですか
AIに書かせると楽かもしれませんね
455:デフォルトの名無しさん
25/07/23 20:20:01.08 jSDoEOvR.net
コメントは最低限しか書かないなあ
リファクタリングしまくって、コメント書かなくてもわかるコードにする方がいいと思う
1~2日で作成したら、最低1週間はリファクタリング期間
456:デフォルトの名無しさん
25/07/23 21:02:26.59 3kQj9G/6.net
規模感がちょっとわからないけどテスト込みで手直し1週間?
457:デフォルトの名無しさん
25/07/23 21:55:41.80 jSDoEOvR.net
規模はまちまちだけど、この例ではテスト込みで作成1~2日
完成後1週間は毎日コードを読み直す時間をとる
すると何かしら改善点が見つかる
毎日読んでも何にも改善点なく1週間過ぎたらステーブル
458:デフォルトの名無しさん
25/07/24 21:58:34.96 GZnFTazm.net
複数のシートをpdf出力したいのです。
wb.Sheets(arr).Select
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=pdfPath
の様に、ActiveSheetで指定するしか方法はないのでしょうか?
ActiveSheetは明示的でないので避けたいです
459:デフォルトの名無しさん
25/07/24 22:07:09.88 CXis1mnI.net
>>452
wb.Sheets(arr).ExportAsFixedFormat Type:=xlTypePDF, Filename:=pdfPath
460:デフォルトの名無しさん
25/07/24 22:09:24.06 GZcfs+u1.net
>>452
まずはAIに聞く癖を付けろ
以下の方法でActiveSheetを使わずに複数シートをPDF出力できます:
```vb
wb.Worksheets(arr).ExportAsFixedFormat _
Type:=xlTypePDF, _
Filename:=pdfPath
```
`wb.Worksheets(arr)`で直接シートコレクションを指定すれば、ActiveSheetに依存せずに済みます。
461:デフォルトの名無しさん
25/07/24 22:21:03.69 3SMUfFNx.net
↓は実行できるけど、
ThisWorkbook.Sheets(Array("Sheet1", "Sheet2")).Select
↓はエラーにならね?
ThisWorkbook.Sheets(Array("Sheet1", "Sheet2")).ExportAsFixedFormat Type:=xlTypePDF, Filename:=pdfPath
462:デフォルトの名無しさん
25/07/24 22:52:04.71 GZnFTazm.net
>>454
はい、AIは大嘘つき
463:デフォルトの名無しさん
25/07/24 22:52:55.23 GZnFTazm.net
>>453
無理でーす
464:デフォルトの名無しさん
25/07/24 22:53:12.34 GZnFTazm.net
>>455
正解!
465:デフォルトの名無しさん
25/07/24 22:57:55.91 GZnFTazm.net
wb.Sheets(配列).Select
ActiceSheet..ExportAsFixedFormat Type:=xlTypePDF, Filename:=Path
でしかエラーになります
466:デフォルトの名無しさん
25/07/25 01:14:02.16 f/mD0P8I.net
>>452
Selectが必要なことに変わりはないがActiveSheetを排除したいのならこう書ける
wb.Sheets(arr).Select
wb.Sheets(arr(0)).ExportAsFixedFormat Type:=xlTypePDF, Filename:=pdfPath
467:デフォルトの名無しさん
25/07/25 01:45:35.35 YmqTu82J.net
>>460
それは複数シートではなく、単一のシートですよな
468:デフォルトの名無しさん
25/07/25 07:52:00.89 UfHu+jPG.net
変数使ってループさせるくらいの頭働かせられないくらい頭沸いちゃったのかな
暑いからね
469:デフォルトの名無しさん
25/07/25 08:02:36.99 YmqTu82J.net
>>462
複数のシートを個別のpdfファイルにエクスポート、ではないです
複数のシートを1つのpdfファイルに、です
これの方法がActiceSheet.ExportAsFixedFormatしか見つからなくて、ActiceSheetの様な曖昧な指定は嫌だなぁと思うのです
470:デフォルトの名無しさん
25/07/25 08:22:07.09 JviM2itp.net
ActiveSheetを明示するだけでしょ
今のActiveSheetをテンポラリに持っておいて、
特定のシートをActivate
それを書き出した後テンポラリをActivate
471:デフォルトの名無しさん
25/07/25 08:40:06.97 f/mD0P8I.net
>>461
選択中のどれかのシートをエクスポートすれば選択シートすべてが出力される不思議仕様
472:デフォルトの名無しさん
25/07/25 09:10:21.07 6JkrjnZc.net
ActiveSheetはワークシート(単・複数)へのポインタみたいなものだよ
シートを省略して書かれたメソッドは常にActiveSheetを対象操作にする
473:デフォルトの名無しさん
25/07/25 12:31:12.82 YmqTu82J.net
そうだったんですか
wb.Sheets(arr).Select
〜中略〜
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=pdfPath
と書いたにも関わらず、何故か出力されたpdfが1シートのみ
という事があって、もしかしてcopy modeの様に、ちょっとした操作でシートのグループ化が解除されるのかなと思いました。
474:デフォルトの名無しさん
25/07/25 12:41:13.91 7k67EuH4.net
そりゃ解除されるよ
選択していないシートをアクティベートしたりね
ユーザー操作で違和感なく動作するのが大前提だから
475:デフォルトの名無しさん
25/07/25 18:16:56.05 O3RmL+0a.net
>>466
>常にActiveSheetを対象操作にする
シートモジュールでシート指定しないやつは、ActiveSheetじゃなくてそのシートだったと思ったが
476:デフォルトの名無しさん
25/07/25 20:45:59.47 6JkrjnZc.net
VBの内部コード(Pコード)は解析されてるのかな
AIに全部ぶち込んでしまえば、どういう理屈でという疑問は解消しそうだけど
477:デフォルトの名無しさん
25/07/26 08:11:28.23 ZNo9mvnh.net
wb.Sheets(arr).Select
wb.Sheets(2).ExportAsFixedFormat Type:=xlTypePDF, Filename:=pdfPath
でもグループ化したシートが出力できるのですね
今知りました
でも怖いですね
wb.Sheets(2).Selectはグループ化解除だから
478:デフォルトの名無しさん
25/07/26 13:26:56.16 8rv+r4rK.net
名前付き引数書く派なんだなおまいらも
479:デフォルトの名無しさん
25/07/26 14:28:31.18 F1jFmomB.net
ExportAsFixedFormat xlTypePDF, pdfPath,,,,,,
名前を覚えるか糞長引数の位置を覚えるかのトレードオフ
480:デフォルトの名無しさん
25/07/26 15:15:43.28 //AUV0sR.net
別にどちらでもいい
481:デフォルトの名無しさん
25/07/26 17:35:17.71 UKLeI2W+.net
どっちの書式も覚えてない
検索で上位に出てきたコードをコピペするだけ
482:デフォルトの名無しさん
25/07/28 17:59:42.76 vQ0dL+ep.net
一次配列しか対応していないからFilter関数を避けてきましたが、worksheet関数で一次配列に簡単に直せるのと、Filter関数は部分一致なので、ループで重ねがけをするととても便利ですね。
483:デフォルトの名無しさん
25/07/28 18:28:01.59 23Svm7lo.net
ネット検索でコピペ
実際はこんなのが大半なんだよな
484:デフォルトの名無しさん
25/07/28 23:33:08.81 /EYYRyt0.net
部署内と提携仕入先でVBAで金かけずに簡易システムの共同開発ってことで
メール本文にプロシージャ貼って相手に送ってる
相手からうまく動きました、こっちもこうしてほしいですと回答がくる また直したのをメールに貼って送る
なんという原始的な外資企業だよ
485:デフォルトの名無しさん
25/07/28 23:37:37.11 ofRNtrsX.net
草
486:デフォルトの名無しさん
25/07/29 12:30:27.63 cpAOUjwH.net
できることからコツコツと
ですよ
マニアでもいないと飛躍しない
責任取らされるかもと思えば何もしない
487:デフォルトの名無しさん
25/07/29 19:57:27.87 G836h0I1.net
vbaではfor のループ処理で条件に一致しないときはループをスキップ(次へ)が出来ないと聞きます
なんとかif文のnot then の時はスキップみたいなコードを書いていますがなかなか難しいです
AIはGo To文を書いているので私も書いていいでしょうか?
488:デフォルトの名無しさん
25/07/29 19:59:00.98 wqm1/dtV.net
whileとか使えば?
489:デフォルトの名無しさん
25/07/29 20:10:20.21 G836h0I1.net
>>482
whileもDoもしっかりと理解しておかないと無限列車編になりそうで怖いです
仮にもしIf not 〜 Then Next
と言う様なコードがあったとしてもそれが事実上のGo To文だと言われたらそうなのかもしれません
490:デフォルトの名無しさん
25/07/29 20:24:56.02 cpAOUjwH.net
continueが無いと言うことなら
goto continue
はわかりやすく代替になる
ネストあるしでオレの場合は
LBL_CONTINUE_10:
とかにしてるけど
491:デフォルトの名無しさん
25/07/29 20:27:33.99 J9oCD99i.net
>>483
馬鹿には難しいのか?
492:デフォルトの名無しさん
25/07/29 21:03:16.99 G836h0I1.net
>>485
Doとwhileはよく理解して使わないと無限ループになると聞いているので避けてきただけです
Go To もスパゲッティコードになると聞いているので避けいるだけです
If not 〜 Then 次
次 : にすればいいですね
493:デフォルトの名無しさん
25/07/29 21:10:27.10 vWW6c4Rp.net
i=i+1をセットに考えとけば無限ループなんて起こすことそんなにないっしょ
494:デフォルトの名無しさん
25/07/29 21:41:08.56 ii3Lf2qi.net
>>486
こんな簡単なことも瞬時に理解できないとかやっぱり馬鹿だろうが
Go Toと書いてるだけで馬鹿とわかるんだよ
それとも境界知能か?
495:デフォルトの名無しさん
25/07/29 21:54:22.96 G836h0I1.net
Power Queryでフィルターしたり、データベースの真似事をするのは大好きだけど、
vbaのauto filterをするのは苦手意識が強い
この気持ちわかってくれますか?
496:デフォルトの名無しさん
25/07/29 22:09:39.89 hgNMIII1.net
夏休みのせいか?それとも暑さで頭がやられているのが出てきてるのか?
497:デフォルトの名無しさん
25/07/29 22:28:38.75 eRHOoyzY.net
こだわりがあるようだから温かく見守ってあげて
498:デフォルトの名無しさん
25/07/29 22:29:41.49 49whZmZ7.net
いつもの人か
誰が付き合ってあげて
499:デフォルトの名無しさん
25/07/29 22:40:34.46 G836h0I1.net
>>492
いつもの人ってなんですか?
500:デフォルトの名無しさん
25/07/30 00:33:34.98 JW2l3Q+S.net
しらんけど煽りしかしてないやつはなんなんだ?
501:デフォルトの名無しさん
25/07/30 00:42:25.90 wwipb9hb.net
白痴が書き込むようになると一気にレベルが下がるからな
悪貨は良貨を駆逐する
502:デフォルトの名無しさん
25/07/30 02:51:59.94 UyfVNIk6.net
>>493
どうしようもなく頭が悪くて理解力が足りないだけなのにネチネチと質問を繰り返す人のこと
503:デフォルトの名無しさん
25/07/30 06:00:40.49 0FpGkecW.net
>>496
一体どこが理解力がないのでしょうか?
504:デフォルトの名無しさん
25/07/30 06:21:59.30 hYsgvs3H.net
ダメだこりゃ
505:デフォルトの名無しさん
25/07/30 08:09:34.32 tLf0EMwW.net
質問する側ならともかく、真夜中ひとが寝静まってる頃合いに、回答するでもなく
煽りや虚仮にするだけのカキコする人に関わってはいけない ダークサイドに取り込まれる
じゃあ、そういう人等が得意な分野の質問をすれば回答が付くのか?というと、そんなことも無い
得意なのは他人を罵ることだけなんだから
506:デフォルトの名無しさん
25/07/30 08:21:21.59 tLf0EMwW.net
そもそも、優秀な人材は真夜中はきちんと睡眠をとっている
夜中に寝付けずにあまつさえ掲示板にわざわざ出向いて
あろうことか罵詈雑言書き込んで己の不甲斐無さの不満の吐け口にしてる時点でお察し
507:デフォルトの名無しさん
25/07/30 08:32:17.89 ZrfB2rqA.net
ID:tLf0EMwW
頭悪そう
508:デフォルトの名無しさん
25/07/30 12:03:26.15 8Rlxo22+.net
ID:ZrfB2rqA
頭ハゲてそう🦲
509:デフォルトの名無しさん
25/07/30 14:51:27.88 tLf0EMwW.net
わずか10分後に反応されてた!
もはや、殆どbotだな
この応答を見れば明白なように
ヒトでも無いカキコの相手するだけ時間の無駄だといういい見本
新しくここに来た人たちは、botが居着いてることを承知の上で
相談や質問をするのが、ひとつの心構え
510:デフォルトの名無しさん
25/07/30 17:11:39.24 2dwihfai.net
専ブラを知らないキチガイはNG
511:デフォルトの名無しさん
25/07/30 18:05:33.89 bqS2T+6f.net
優秀の定義は年収で決まる
年収が30代で750万、40代で900万これを超えない奴がさわるVBAなんてもれなくポンコツだから
ふふ
512:デフォルトの名無しさん
25/07/30 19:00:00.76 +PBQOhAV.net
つまり会長・社長クラスの触るVBAは素晴らしい出来
生徒や学生の触るVBAはポンコツ
んなわけあるか
513:デフォルトの名無しさん
25/07/30 21:07:45.62 T2pHe4I2.net
極論そうだよね
低年収の触るVBAは質が低い
質が低いからVBAを覚えても低年収
専門分野と違ってこんなに強みになるプログラミングは他にないから
514:デフォルトの名無しさん
25/07/30 22:02:33.58 3dlCCuCF.net
>>506
ほんそれ
バカの言ってることなんてポンコツなことばかり
515:デフォルトの名無しさん
25/07/31 19:07:57.07 QmW4aWFz.net
優禿の定義は年収ではないと思う
516:デフォルトの名無しさん
25/07/31 19:22:24.31 IqvQqgPR.net
まあ馬鹿にしたいだけなんで定義も根拠もないんだけどな
517:デフォルトの名無しさん
25/07/31 19:42:34.79 PLayNHBZ.net
そんなもんやろな
518:デフォルトの名無しさん
25/07/31 21:06:19.26 2YdreDTb.net
>>509
_人人人人人人人人人_
> また髪の話してる <
 ̄Y^Y^Y^Y^Y^Y^Y^Y^Y ̄
_
γ ⌒ ヽ 彡 ⌒ ミ . 彡 = ミ
(´・ω・`) (´・ω・`) (´・ω・`)
ツルピカ ウスゲ バーコート
519:デフォルトの名無しさん
25/07/31 21:31:34.28 Sbsp3WvH.net
仕事の能力は年収じゃないって否定しても実際は年収だけどな
VBAなんてどう処理させるかじゃなくどう運用するかなんだよ
520:デフォルトの名無しさん
25/07/31 22:18:52.27 Dd41SAEI.net
処理の結果がすべて
ソースコードがきれいかどうかで評価する会社なんかない
521:デフォルトの名無しさん
25/08/01 06:26:00.78 w1WlIxif.net
なんですぐに人に統合失調症だのバカだの言う人がいるのでしょうね。
522:デフォルトの名無しさん
25/08/01 07:38:46.46 N/mTRICo.net
>>513
年収で判断できるのは仕事の能力ではなく労働の能力
523:デフォルトの名無しさん
25/08/01 07:41:55.86 bbNzKVYn.net
そんな言葉遊びで誤魔化してるから給料が安いのです
構文よりイメージを養いなさい
524:デフォルトの名無しさん
25/08/01 07:56:02.20 eVYJhFpu.net
すぐ話脱線するし、ろくでもないスレになったな
525:デフォルトの名無しさん
25/08/01 08:14:50.95 tPn9WPv7.net
>>517
算数と数学くらい違うものを言葉遊びとか、
よほど学がないんだな
526:デフォルトの名無しさん
25/08/01 10:40:10.51 R6RHAbIb.net
昨日まで使ってたのが急にエラー出るようになったけど何が原因か分からなかったのでアドバイス下さい
使用マクロ
Sub 表作成()
Dim ws1 As Worksheet
Set ws1 = ThisWorkbook.Worksheets("記")
Dim cmax1 As Long
cmax1=ws1.Range("A1048576").End(xlUp).Row
With ws1.Sort
.SortFields.Clear
.SortFields.Add Key:=ws1.Range("A2"), SortOn:=xlSortOnValues,
Order:=xlAscending, DataOption:=xlSortNormal
.SetRange ws1.Range("A3:L" & cmax1)
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Columns("E:E").ColumnWidth = 0
Columns("I:I").ColumnWidth = 0
Columns("K:K").ColumnWidth = 0
ActiveWorkbook.SaveAs
Filename:="C:\Users\User\Documents\ファイルパス\請求書" & " " & Format(Date,
"yyyymmdd") & ".xlsx", FileFormat:=xlOpenXMLWorkbook
End Sub
エラー内容
ファイル'C:\Users\User\Documents\ファイルパス\請求書\7E1A4F10'にアクセスできません
527:デフォルトの名無しさん
25/08/01 12:40:21.47 cEVejwoq.net
>>520
ファイル名で「請求書」の次は「年月日」が来るはずなのに、エラーメッセージの中で16進数になってるのがあきらかにおかしい
本当にそのマクロを動かして、そのエラーが出たの?ちょっとありえないんだけど
528:デフォルトの名無しさん
25/08/01 12:42:32.32 uTmd43g9.net
英字のファイルってなんか中間ファイルかなんかだっけ
529:デフォルトの名無しさん
25/08/01 16:09:22.52 R6RHAbIb.net
>>521
再度試しましたが発生しました
エラーメッセージは正確には
ファイル'C:\Users\User\Documents\ファイルパス\請求書\PDF/7E1A4F10'にアクセスできません(7E1A4F10は毎回別の文字列になります)です
昨日からの変更点はSSDが壊れたため、D:/をC:/に変更しました
530:デフォルトの名無しさん
25/08/01 17:15:54.06 hiUF93yw.net
ぼけっ!と叫びたくなるな
531:デフォルトの名無しさん
25/08/01 17:36:20.41 eMcgYSYd.net
D:/じゃなくてD:\にしなくちゃな
532:デフォルトの名無しさん
25/08/01 17:47:11.41 cEVejwoq.net
>>523
そこの文字列、PDFの次は本当にスラッシュなの?
だとしたら、スラッシュはファイル名に使えない文字だからエラーが出て当然なんだけど
ごまかさずにエラーの出たソースコードちゃんと貼って
533:デフォルトの名無しさん
25/08/01 18:38:36.40 R6RHAbIb.net
すいません、/は¥です
コピペしたら変わってた
534:デフォルトの名無しさん
25/08/01 18:39:47.95 eMcgYSYd.net
流石に変わらんだろw
535:デフォルトの名無しさん
25/08/01 18:41:07.46 AVNTPHz8.net
ファイルシステムが壊れたかハードウェア障害なんじゃね
フォーマットしてOSから再インストールだな
536:デフォルトの名無しさん
25/08/01 18:50:34.81 hiUF93yw.net
エラーメッセージの通りだろ
┐(´д`)┌ヤレヤレ
537:デフォルトの名無しさん
25/08/01 19:10:41.68 igw8+VNg.net
初心者だから見落としている事に気づいていない ってことなんだろうな
538:デフォルトの名無しさん
25/08/01 20:49:06.67 iGmjJYY4.net
あれ?また低年収がこんな内容でドヤ顔の上から目線じゃん
¥と/の関係性もわからない時点で使用者がトラブルの打ち上げしても僕の処理は綺麗ですと言い張ってそう
539:デフォルトの名無しさん
25/08/01 20:52:36.63 iGmjJYY4.net
初心者が~って年収500万もなさそうな底辺が嬉々としててもね…
作ったVBAを不慣れな人が使うことも想定できないまさに底辺
540:デフォルトの名無しさん
25/08/01 21:13:00.15 49ut/ffG.net
>>523
ActiveWorkbook.SaveAs
Filename:="C:\Users\User\Documents\ファイルパス\請求書" & " " & Format(Date,
"yyyymmdd") & ".xlsx", FileFormat:=xlOpenXMLWorkbook
請求書フォルダ配下のPDFフォルダを指定してないけどそんなエラーが出る?
保存先が変わってない?
541:デフォルトの名無しさん
25/08/01 21:14:40.85 w1WlIxif.net
>>520
シートはコードネームで指定した方がいいと思う
テーブルを使いましょう
542:デフォルトの名無しさん
25/08/01 21:38:32.14 ddFT1Hp8.net
"PDF" が消えている
543:デフォルトの名無しさん
25/08/01 22:10:03.29 X5JOiH9e.net
ユーザが違うオチとか
544:デフォルトの名無しさん
25/08/01 22:28:18.18 R6RHAbIb.net
>>534
D:→C:~Documents¥に変えたくらいしか心当たりないんです
>>535
ごめんなさい
545:デフォルトの名無しさん
25/08/01 23:27:01.60 hiUF93yw.net
>>538
だからエラーメッセージの通りだろ
546:デフォルトの名無しさん
25/08/01 23:59:43.71 i/B3OzBA.net
保存先のフォルダーがないんじゃないの?
547:デフォルトの名無しさん
25/08/02 00:24:04.05 yYRGbhMw.net
例によって馬鹿が質問し有象無象の馬鹿が湧き出る流れ
548:デフォルトの名無しさん
25/08/02 00:56:41.31 pROVV37J.net
>>520
そもそもなんでファイルフォーマットを指定しているのに
& “.xlsx”
を書いているのですか?
それとactiveworkbo
549:ok.saveas じゃなくて thisworkbook.saveasね
550:デフォルトの名無しさん
25/08/02 07:48:06.29 G/qnQzxD.net
SSDだったDドライブに\Users\User\Documents\が有ったとは思えないんだが
バックアップ先だったとかでフルアドレス入れてたかも知らん(無駄に)
で、それまではそれで動作してたけど、Dが壊れたとかで単純にDをCに変えただけだとしたら
アクセス権限が与えられていない可能性もある
普通にエクスプローラー開いて、それぞれのフォルダを段階追ってひとつずつ開いてみて
問題無ければ最後はそのExcelファイル開いてエラー発生しないかどうか(マクロ使わずに手動で開くという意味)
何か別にアドインとかが組み込まれててそれが原因だったってのもあるけど、それは次のステップでの検証
ブラウザ次第とかで入力時は¥にしてたのに書き込んだらスラッシュに変わってしまってるなんてのは
よくあること(↑の¥は敢えて全角で書いてみた)
551:デフォルトの名無しさん
25/08/02 08:17:04.68 CP7PbFCC.net
分かってないならスクショなりをそのまま貼れば良いのに
552:デフォルトの名無しさん
25/08/02 09:12:26.17 6UqvySRN.net
ファイル名に空白はいってるのか
ファイル名囲まんとだめなやつじゃね
553:デフォルトの名無しさん
25/08/02 10:00:02.65 5rJvWPSX.net
>>520
Windowsの更新などで、たまにVBAが影響を受けて、マクロが動かなくなるときがある。
特にワークシート名などのオブジェクトをスクリプト内で日本語(2バイト文字)で指定すると、
うまく行かなくなったりした。
まず気になるのは、シート名の"記"を"Notes"あたりにしてやってみるとか?
ファイル名での日本語混じりフルパス指定は、多分影響はないとは思うけど、
「アクセスできません」
の原因がそれだったら、そのパスをワークシートのどこかに名前定義で貼り付けて、
その名前をVBA内でRange()参照するとか
知らんけど。
554:デフォルトの名無しさん
25/08/02 10:23:23.13 pROVV37J.net
>>546
ThisWorkbookならコードネームの方が安定すると思います
あと個人でしか使用しないマクロ、ブックならいっそシートのインデックス番号で指定した方が安定するかもしれませんね
555:デフォルトの名無しさん
25/08/02 10:51:23.59 SCo3ZM4N.net
パスを公開用に書き換えるぐらいなら前半の関係ない所を消せよ
もし新規ブックで保存の1行だけにしてエラーが起きるならそれを貼れ
ちなみにマクロの記録で保存文の正解はExcelが書いてくれる
AIより確実だ
556:デフォルトの名無しさん
25/08/02 10:55:31.35 TvS+m01z.net
AIをほとんど使ったことないやつ
「AIより確実だ」ワロタ
底辺職で知らずに適当に言ってるのおもろすぎ
557:デフォルトの名無しさん
25/08/02 12:50:36.42 CP7PbFCC.net
>>548
マクロの記録はじゃ記録できない操作もあるけどね
558:デフォルトの名無しさん
25/08/02 13:38:37.58 JsttepqD.net
>>549
AI盲信するバカなやつw
559:デフォルトの名無しさん
25/08/02 15:33:56.33 XyRtrdUE.net
質問だが、
Excelでウェブページの表のデータ(テキスト)を取得したいが、
どうすればええの?
560:デフォルトの名無しさん
25/08/02 16:04:17.37 qxFnCwfY.net
>>552
今時はAIを使ったスクレイピングのSaaSが色々あるから、そういうのを使えば一瞬でできる
561:デフォルトの名無しさん
25/08/02 16:22:40.55 UAE3kLxf.net
>>552
ブラウザからExcelなら普通にコピペできるぞ
表を選択、コピーしてワークシートに貼り付けるだけ
色やフォントが邪魔ならセルを右クリして「貼り付けのオプション」から「貼り付け先の書式に合わせる」を選ぶだけ
562:デフォルトの名無しさん
25/08/02 16:36:11.47 G/qnQzxD.net
新しめのサイトだと、その表内選択すら拒絶してる(ドラッグしても選択状態に成らない)のも
稀によくある
「ケッ!おまえのデータなんか要らねえよっ!」と、捨て台詞吐いて渋々次のサイトを漁りに行く
563:デフォルトの名無しさん
25/08/02 16:58:35.92 pROVV37J.net
>>552
Power Automate Desktopでなんとかできるかもしれない
取得したい表をブラウザで開いた状態にする
ブラウザ操作ですでに開いているブラウザにインスタンスする
webデータ抽出 > webページからデータを抽出する
ブラウザに画面を戻すと右クリックで設定できる様になる
成功したらあとはエクセルに貼り付けるのを考えてください
564:デフォルトの名無しさん
25/08/02 17:12:25.56 XyRtrdUE.net
>>553
いや、自動でやりたいって話。
たくさんあるので。
565:デフォルトの名無しさん
25/08/02 17:13:49.69 XyRtrdUE.net
>>556
そのMicrosoft Powerなんちゃらってやつ、気になってるわ
でも、Excelに手で貼るんじゃなく、VBAでプログラム的に計算処理して、
セルに表示する感じ。
566:デフォルトの名無しさん
25/08/02 17:15:25.84 tx0odXgn.net
表をテキストやHTMLだかで取得できるならpowershellでやったっていい
567:デフォルトの名無しさん
25/08/02 18:07:55.80 EhvNl/Bg.net
取得したいウエブページがたくさんあるのなら、スクレイピングを使って完全自動化するけど
数が少ないのならウエブのテキストコピーだけは手動でもありなんじゃね
568:デフォルトの名無しさん
25/08/02 18:12:45.94 pROVV37J.net
>>558
私も狙い通りや完璧にほど遠いので教えられる事は非常に少ないですが
iframeがある場合は必ず指定して
bodyやhtmlも特定できる様に指定しておいた方がいいかもしれないです
全く同じ要素の物が複数ある場合はordinalで0から始まるインデックスで指定
特にテーブルや表ならこれかもしれない
テーブルのタグはtdやtrとか
569:デフォルトの名無しさん
25/08/02 18:22:15.39 XyRtrdUE.net
>>561
実は、
今までは、iMacrosってやつと、JavaScriptとかを使ってやってたけど、
iMacrosが開発終了で動かなくなった
あんまり無名のソフトは使わないほうがいいですね…
570:デフォルトの名無しさん
25/08/02 18:33:30.70 AVMu827h.net
>>552
Webスクレイピングはこの辺を使ってやってる
CreateObject("MSXML2.ServerXMLHTTP")
CreateObject("WinHttp.WinHttpRequest.5.1")
571:デフォルトの名無しさん
25/08/02 18:34:59.68 HpTF1ew1.net
>>557
もちろん自動でできるよ
572:デフォルトの名無しさん
25/08/02 18:36:59.11 moyeEsyU.net
>>543-548
ありがとう、PC会社で土日弄れないから週明けシート名変更から順に試してみます
573:デフォルトの名無しさん
25/08/02 18:37:41.95 tx0odXgn.net
Manifest V3問題かな
昔のブラウザを使えばいい
574:デフォルトの名無しさん
25/08/02 18:45:33.16 lDYz6lmB.net
>>565
二度と来るな
575:デフォルトの名無しさん
25/08/02 18:46:38.24 XyRtrdUE.net
>>563
ほう
それ使って、なんとかできそうだね
576:デフォルトの名無しさん
25/08/02 18:50:26.55 VT4vRkUR.net
powerqueryもwebページからでーた取得できるよ
577:デフォルトの名無しさん
25/08/02 19:11:58.74 XyRtrdUE.net
>>569
そう、それ
Microsoft Powe Queryってやつ
それでできそうだね
578:デフォルトの名無しさん
25/08/02 19:12:47.04 XyRtrdUE.net
>>570
あとはSeleniumBasicだか?
Copilotが教えてくれたわ
579:デフォルトの名無しさん
25/08/02 20:04:32.06 CP7PbFCC.net
>>551
コードは人が検証できるんだから盲信もクソもないだろ
あってるかどうか追ってから使うだけ
580:デフォルトの名無しさん
25/08/02 20:33:46.91 UAE3kLxf.net
>>571
SeleniumBasicは業務での使用だと導入のハードルが高いから、まず最初は使わない方向で検討した方がいい
JavascriptとかCSSとか使って動的に生成されたページだとWinHttpやXMLHttpじゃ取得できないから、その時になってから考えればいい
581:デフォルトの名無しさん
25/08/02 23:03:47.38 TpfKdlSr.net
VBA関係ないんだけど便乗質問
テキストじゃなくて画像になってる表を取り込む方法ない?
フリーのOCRサービスをいくつか試してみたけど、認識率が低すぎてまったく使い物にならなかった
たとえば、こんなやつ
URLリンク(i.imgur.com)
582:デフォルトの名無しさん
25/08/02 23:20:31.57 6k2UexVh.net
>>574
死ね
583:デフォルトの名無しさん
25/08/02 23:21:26.24 AVMu827h.net
>>574
ChatGPTはパーフェクトに認識してくれた
584:デフォルトの名無しさん
25/08/03 00:20:48.61 voGz0LGc.net
画像のテキスト化はChatGPTにその画像を貼って「csvに変換」て命令するだけ
585:デフォルトの名無しさん
25/08/03 01:46:04.43 tG7R5evI.net
>>572
日本語読めないバカなやつw
586:デフォルトの名無しさん
25/08/03 07:22:39.43 u21A2qJf.net
将棋の9x9の盤面を
Excelの9x9のセルに取り込む方法はありませんか?
4-5年前の段階ではそういうフリーのOCRアプリを試してみたけど、認識率が低すぎてまったく使い物にならなかった。
たとえば、こんなやつ
URLリンク(kifulog.shogi.or.jp)