Excel VBA 質問スレ Part81

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2024/04/18(木) 14:03:38.03ID:cMr18rZu
ExcelのVBAに関する質問スレ
コード書き込みや作成依頼もOK

次スレは>>980が立てること
無理なら細かく安価指定

関連スレ
Excel VBA 質問スレ Part79(ワッチョイあり)
https://mevius.5ch.net/test/read.cgi/tech/1674875532/

※前スレ
Excel VBA 質問スレ Part79
https://mevius.5ch.net/test/read.cgi/tech/1674874007/
Excel VBA 質問スレ Part80
https://mevius.5ch.net/test/read.cgi/tech/1685489018/
451デフォルトの名無しさん
垢版 |
2024/08/21(水) 22:06:03.45ID:6l3+xVC2
>>447
いまはJavaScriptそのものを書く時代ではない。
452デフォルトの名無しさん
垢版 |
2024/08/22(木) 10:59:48.92ID:IKT838Oo
memo
https://nordot.app/1193192112776135228?c=388701204576175201
https://www.mrc.ritsumei.ac.jp/2024/08/19/post-128060/
https://www.ritsumei.ac.jp/se2017/making-things/story/story03.html/
453デフォルトの名無しさん
垢版 |
2024/08/22(木) 12:44:57.48ID:QvnctahQ
>>449
今何歳?
2024/08/22(木) 13:35:59.57ID:13ZvCKwS
>>449
今でもあるじゃん
PC教室やスマフォ教室はジジババの相談所
455デフォルトの名無しさん
垢版 |
2024/08/22(木) 13:48:48.18ID:3qb/muJZ
>>449
オタくらい知ってないと、子供のなぜなぜに答えられない
456デフォルトの名無しさん
垢版 |
2024/08/22(木) 17:19:57.36ID:0OofYQEx
今日、YouTubeのおすすめ動画にUSBメモリの使い方を教える動画が出てきた。

キャップのあり、なしと銀色の方が指すとかこんなのでも需要があることに少し驚いた。

USBを使うことになって参考になったというコメントがたくさんあって説明書を読む習慣もない人間だらけなんだと改めて思った。

そもそも「USB」はUSBメモリのことじゃないのも気持ち悪いコメント。
2024/08/22(木) 17:26:45.95ID:93tDdVa7
Excel VBAの動画みたいだね
2024/08/22(木) 19:12:51.77ID:4iA6d+k7
PC教室は爺様婆様の相談所ところかお茶会(笑)を開く場所になりつつある近所のPC教室。
年賀状の作り方とメールとラインと調べ物の検索のやり方の基本操作教えてあとはお茶会開いて談笑で終わるw
459デフォルトの名無しさん
垢版 |
2024/08/22(木) 20:15:42.12ID:0OofYQEx
>>458
結局、お金に困ってないからそうなる。iPhoneアプリをガンガン作っているおばあさんのような日本人が多ければ、日本の未来はまだ明るい。
2024/08/22(木) 20:43:48.46ID:4iA6d+k7
あのお婆さんは特別だね。もって産まれた才能みたいな
2024/08/22(木) 21:06:44.66ID:jQ+azWdr
でもiPhoneの開発ってwindowsPCじゃ厳しいんでしょ?
2024/08/22(木) 21:56:50.96ID:ClQu8McD
VBAが使えれば大体の事できるから困らない
463デフォルトの名無しさん
垢版 |
2024/08/22(木) 22:41:37.08ID:0OofYQEx
>>461
素人童貞は不可
2024/08/23(金) 11:41:14.53ID:ua4lXpr7
お、おう
465あぼーん
垢版 |
NGNG
あぼーん
2024/09/07(土) 11:13:37.83ID:wXnXY4Hk
今まで普通に軽く動いてたVBが極端にメモリ食うようになって重すぎて動かなくなってしまった
メモリ解放のコード入れたり配列化したりしてコード軽くしてもダメで、何か対策ありますかね
多分officeのバージョン上がったのが原因っぽいです
2024/09/07(土) 11:54:53.47ID:NJX9jJLt
VBはスレチガイだろ
2024/09/07(土) 17:29:43.63ID:xeyH6OqA
ヨソのネタの焼き直しだろ うっかりAを書き損ねただけで
未知のウィルスかも知れないから勝手に判断しないで専門機関にただちに通報して調査してもらえ 
と、ここでは目先の変わった回答しといてあげよう
2024/09/07(土) 18:28:39.57ID:SOY/Hsf8
Officeのバージョンが… とあるから、VBAの話だろう
うちもずっと問題なかったプログラムが、「メモリー不足」のような理由で停止した
470デフォルトの名無しさん
垢版 |
2024/09/07(土) 18:52:09.08ID:fjK8Ihmv
ひょっとしてメモリ4GBとかなのかな?
今は最低でも8GBは必要だし
出来れば16GBくらい欲しいところだよね
471デフォルトの名無しさん
垢版 |
2024/09/07(土) 18:59:51.26ID:N9ZAZJtk
[2年後]

ひょっとしてメモリ8GBとかなのかな?
今は最低でも16GBは必要だし
出来れば32GBくらい欲しいところだよね
2024/09/07(土) 19:13:02.79ID:E5jzofde
オプション→セキュリティ センター
信頼できる場所→新しい場所の追加
ファイルの格納フォルダを追加
2024/09/07(土) 20:15:57.38ID:z1Hda+/l
ココ↓
https://mevius.5ch.net/test/read.cgi/bsoft/1709099192/849
474デフォルトの名無しさん
垢版 |
2024/09/08(日) 12:02:11.54ID:p7GGKajw
EXCELのバグだとしたらEXCEL再起動や、メモリにゴミが残るならメモリ解放アプリ(MSが出してるのあったはず)で一時しのぎしながら修正待つのが無難
うちは32gbだし、それほどマクロ使いまくってないので問題に遭遇していない
(=対策考えようというモチベが沸かない)
2024/09/08(日) 20:09:15.39ID:y6plKiua
コピペさせてると右下ににゅにゅーっとなんか出てきてしばらくの間動作とまるけどあれ何?
とんでもなく時間かかるようになっちまったんだけど
476デフォルトの名無しさん
垢版 |
2024/09/08(日) 23:44:38.83ID:XpVygUQ/
10年ぶりくらいにリリースノート見たわ
えっ、こんなバグあったの? これまでの大丈夫か? と昔も思ってた記憶が蘇ったわ
またしばらく見ないw
2024/09/09(月) 11:40:58.77ID:CQiqzRbc
イルカ思い出したわωωωωωωωωω
2024/09/09(月) 13:32:37.22ID:HTEgQ7lD
なんか出てきてじゃあ判らない 見てる本人が何なのか把握してから相談しないと
設定のクリップボードで履歴残すようにしてるのでは? 常に消すように設定しとかないと
「今、これコピペしたよ!またしたよ!またまた・・」ってのじゃないのか?
エロ画像次々にDLすると「今、AエロDLしたよ!またBエロDLしたよ!またまたCエロ・・」てのは出る
すべてのDL履歴とかまでご丁寧に残すから、そのたんび履歴削除しないといけなくて面倒
「すべて見ているぞ」っつー典型だな
479デフォルトの名無しさん
垢版 |
2024/09/09(月) 20:33:23.82ID:7blItiVr
コパイはそれがもっと酷くなる
家族共用なんて今まで以上に丸見えにw
コパイのせいでxxバレましたってのがこれから溢れるようになる
480デフォルトの名無しさん
垢版 |
2024/09/10(火) 13:13:04.96ID:KGjTz1X0
win8辺りから迷走してるな
勝手に個人情報晒すのやめてくれ
macとかでもそうなんか
481デフォルトの名無しさん
垢版 |
2024/09/11(水) 16:48:56.96ID:8aiHgdAj
VBA素人なんですが、教えて…

for文とCaseって組み合わせて出来ないの?
うまく作動しないし、脳みそが出る

Microsoft365 business


Private Sub cmb_mda_Change()
Dim i As Integer, s As Integer
With Me

i = .cmb_mda.ListIndex

For s = 0 To 30

Select Case i

Case s
cmb_color.RowSource = "基材マスター!V" & "1" & s
s = s + 1

End Select

Next s

End With
End Sub
482481
垢版 |
2024/09/11(水) 16:49:54.62ID:8aiHgdAj
追記

Private Sub userform_activate()
With Me
.cmb_mda.RowSource = "基材マスター!" & "Q2:Q" & Range("Q" & rows.Count).End(xlUp).row
.cmb_color.RowSource = "基材マスター!" & "V2:V" & Range("V" & rows.Count).End(xlUp).row
.cmb_mdaThic.RowSource = "基材マスター!" & "w2:W" & Range("w" & rows.Count).End(xlUp).row
.cmb_accColor.RowSource = "アクセサリーマスター!" & "G2:G" & Range("G" & rows.Count).End(xlUp).row
End With
End Sub
2024/09/11(水) 17:50:24.06ID:Y0T74YZt
>>481
For ~ Nextの中でsを変えちゃだめ (s = s + 1 の部分)
Caseが1個しかない時は、わざわざSelect Caseなんか使わない (If を使った方がシンプルに書ける)
2024/09/11(水) 20:57:15.88ID:bUeWYzfk
>>481
For文使う必要ある?
i が30以下なら〜で終わりそうな。
2024/09/11(水) 23:08:59.50ID:6PhQvlaY
部内使う処理程度の話だけど
新人の女の子から先輩まで俺が作ったVBA処理を必須レベルで当たり前に使ってるのを見ると嬉しくなってしまう
これが社畜ってことだな
486481
垢版 |
2024/09/12(木) 08:51:21.97ID:w0nxnzjv
>483
>484

ありがとうございます。
意図として連携してるコンボボックスが3つあり、コンボボックスの中身が今後増えていく予定があります。
中身が増えたときに、Caseを使っていたのですが、Caseだと長々とコードを書かなくてはならないと思い、Forを使いました。
2024/09/12(木) 10:14:19.60ID:wdLRCtoQ
for文以降をインデントしてないことにイラつく
488デフォルトの名無しさん
垢版 |
2024/09/12(木) 11:12:58.05ID:w0nxnzjv
>>487
短気は早漏(損気)だぜw
2024/09/12(木) 12:47:42.20ID:BT175jx4
(掲示板では)インデントが難しい
490デフォルトの名無しさん
垢版 |
2024/09/12(木) 14:28:52.49ID:5K/F1aNR
初めて書いたときにビックリしたわ
2024/09/12(木) 15:08:24.92ID:wdLRCtoQ
全部ならともかくDim以降はインデントできてるからな
2024/09/12(木) 16:35:19.97ID:BT175jx4
これがインデントのお手本らしい
https://i.imgur.com/QIQ1bp8.png
2024/09/12(木) 16:43:16.05ID:wdLRCtoQ
>>492
安心する
494デフォルトの名無しさん
垢版 |
2024/09/12(木) 21:56:53.49ID:zb+H+Z7x
excelであるセル、例えばセルA5の数字がランダムに変化するのですが、
セルA5に表示された数値の最大値を知りたいのです。
MAX関数等は既に使って知っていますが、MAX関数ではこれは出来ません。
何か方法ないでしょうか?
2024/09/12(木) 22:08:22.31ID:BT175jx4
>>494
A5の内容を書き換えてるのが何者かと、書き換える方法によって最大値を求める方法も変わる
496デフォルトの名無しさん
垢版 |
2024/09/12(木) 22:23:01.62ID:zb+H+Z7x
>>495
A5のセルを書き変えているのは株のソフトです。
2024/09/13(金) 08:47:58.84ID:H4b8XLVp
>>494
俺なら全く同じレイアウトのシートをコピーで作っておいて
セルの値の変更イベントで2つの内容を比較して
大きかった時に退避シートのセルに上書きするかな
もっとスマートな方法があるかもしれない
2024/09/13(金) 10:17:11.58ID:3NwUwDPn
株のソフト側にそれぐらいの機能はあるだろう 無いのか?
つか、わざわざExcelにデータを落とし込む意味は? どのくらいの頻度でA5セルを上書きしてるかわからんし
書き変わった数字だけ見てる理由も図り兼ねるし、どの期間の最大値を求めたいかとかすらわからん
2024/09/13(金) 12:28:52.69ID:49GkiWoo
株サイトをスクレイピングするマクロを手に入れたはいいけど、仕組みがわからなくてセルに表示された内容を見るしかできない人なんでしょ
500デフォルトの名無しさん
垢版 |
2024/09/13(金) 13:02:53.26ID:GKBB3kor
そもそも関数とか書いているのだからスレチ
501デフォルトの名無しさん
垢版 |
2024/09/13(金) 13:04:59.32ID:sg+hDRWZ
>>499
あらかたそういうことだと皆わかってるけど、今更どした
502デフォルトの名無しさん
垢版 |
2024/09/13(金) 13:07:01.80ID:sg+hDRWZ
>>500
えっ?!
バカすw
2024/09/13(金) 13:11:54.62ID:CuNhTKaW
xlsmでもマクロのパスワードって簡単に解除できるの
504481
垢版 |
2024/09/13(金) 13:17:52.39ID:BkJPe7Zz
>>492
その点線の表示はどういう設定ですか?
教えて
2024/09/13(金) 13:31:58.83ID:49GkiWoo
>>504
これはExcelの機能じゃない
プログラムを綺麗に整形してくれるサイトとかアプリとかが別にある
506481
垢版 |
2024/09/13(金) 13:36:37.63ID:BkJPe7Zz
>>505
ですよね
調べても出てこなかった…
507デフォルトの名無しさん
垢版 |
2024/09/13(金) 16:48:32.57ID:bblj+c3p
>>485
辞めたら陰でボロクソ言われてる未来
2024/09/13(金) 16:56:09.74ID:3NwUwDPn
株のソフトってからには、ローソク足チャートとか含まれてそうなものだが
単にスクレイピングしてるってだけなら、Excel側でそのデータをチャートにできる
ps://liibercraft.com/archives/1430 真似するだけで簡単に作れる
最大値知りたい だけじゃ無く、始値終値安値とかも比較しなきゃ、高値だけ追っても
何が何だか
2024/09/13(金) 17:04:30.81ID:LR+YI2VO
>>507
辞めた後の評判が自分まで聞こえてくることはないからヘーキ
2024/09/13(金) 21:35:37.59ID:pOLLC01h
>>494
Dim maxValue As Double

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A5")) Is Nothing Then
If Target.Value > maxValue Then
maxValue = Target.Value
Range("B5").Value = maxValue
End If
End If
End Sub
2024/09/18(水) 04:18:48.87ID:m7bc9t2M
>>492
1つ目の段落はしないなー
512デフォルトの名無しさん
垢版 |
2024/09/18(水) 09:19:49.82ID:6p1dNV5V
オレも1段目はしない派だな
513デフォルトの名無しさん
垢版 |
2024/09/18(水) 11:09:59.45ID:P4TXdwxF
IEが使えなくなった今、
VBAからChromeブラウザでHTMLを操作する方法はありますか?
2024/09/18(水) 11:37:48.60ID:XI8ifICC
まだIEは使えるしEdgeやChromeも使える
515デフォルトの名無しさん
垢版 |
2024/09/18(水) 12:03:02.51ID:P4TXdwxF
>>514
そのやりかたとは?
516デフォルトの名無しさん
垢版 |
2024/09/18(水) 14:03:12.68ID:E6OhFCQt
Floorp
2024/09/18(水) 16:32:27.89ID:NxnC1wWp
>>511
Privateは1文字目じゃないのこれ
2024/09/19(木) 20:18:28.74ID:/NVs7a9q
>>511
だよね~
2024/09/20(金) 22:36:42.12ID:F97xUAlJ
まだマクロのスレが息しているとは驚き
2024/09/21(土) 00:06:25.91ID:rFMm4e/D
>>519
そろそろ就職して現実を見ろよ
2024/09/22(日) 09:20:02.85ID:Fif89iKN
>>520
その前に、就職していない現実を見ろよ
2024/09/29(日) 10:55:52.42ID:IMLgMCCX
ププッw 効いてる効いてる
2024/09/29(日) 10:59:10.16ID:VFzoAUjL
VBAで業務効率化をしたいけどもうこれ以上アイデアが浮かばない
アイデアを浮かばせるのによいことってあるかな?
2024/09/29(日) 11:22:06.13ID:CpzCvyCM
アイデアを作る一番良い方法はインプットとアウトプットを増やすこと
ってなんかの本で読んだ
2024/09/29(日) 16:26:37.39ID:XFqGlKVL
仕事嫌だけど週末に思いついたはコードを試したい
2024/09/29(日) 21:08:04.43ID:bEUkoqm2
>>523
まずは手作業で全部やってみ?
2024/09/30(月) 10:30:36.61ID:l00cXZwV
色んな情報を脳にインプットすることで選択の幅が広がる
それらを実際にアウトプットとして作ることで良い所や悪い所が経験として蓄積されるみたいな
2024/10/01(火) 00:08:28.55ID:/md2jSGe
seleniumBASICをインストールしてヘッドレスモードでスクレイピングしてたんだけど
突然、ヘッドレスモードにならずにブラウザが表示されるようになった

chromeとchromedriverをアップデートしたのが原因なんだろうけど
今までアップデートしても何とも無かったのになんでだろう・・・
 
ブラウザが表示される以外では問題なくスクレイピング出来ています。
なぜだか分かりますか?
2024/10/01(火) 04:27:07.05ID:4Z5DZZe1
>>528
ブラウザの仕様はしょっちゅう勝手に変わる
2024/10/01(火) 06:33:46.48ID:cpW1buAI
ASISが仕様と諦めて地道に追従するしかない
2024/10/01(火) 07:13:42.06ID:Ql4d/q6g
>>528
白いウィンドウが表示されるやつ?
オプションを --headless=old にしたら表示されなくなったよ
2024/10/01(火) 11:08:22.05ID:uIcos+y8
Dim ary(2) As Long
ary(0) = 101
ary(1) = 102
ary(2) = 103
Dim dic As New Dictionary
dic.Add "a", ary
Debug.Print dic("a")(0) '@
dic("a")(0) = 101000 'A
Debug.Print dic("a")(0) 'B


VBAって@はできるのにAはできないのな
@とBの結果が同じで101
chatGPTに聞いてみたけどしっかりは理解できんかったわ
参照できないんだってことは分かった
一旦valueの配列を取得してから、この配列の(0)に代入したあとにもう一度元の位置に配列ごと戻せということらしい

C#とjavascriptで同じ事やってみたけど普通にできるからVBAが異常なんかね
2024/10/01(火) 11:31:03.00ID:/md2jSGe
>>531
うおおおおおおおおおお
モーレツに感動しました
マジでありがとう

ここ数日悩みまくって "headless=new" を試したけどダメだった

そうかぁ old だったかのか・・・
2024/10/01(火) 11:40:57.94ID:6vRh522T
>>532
配列じゃなくてdicの値を取り出す関数だからね
2024/10/01(火) 11:43:32.60ID:aeft4n4n
年取ったら超単純な機転が利かなくなっちゃうんだろうな、めげずに頑張れ
2024/10/01(火) 15:03:02.71ID:uIcos+y8
>>534
gptもそんなこと言ってた
variant型変数取り出してるからどうのこうの
でもそれなら(0)ってつけたらエラー起きちゃうんじゃないの

Dim a As Variant
Debug.Print a(0)

たとえばこうやるとエラー起きるじゃんみたいな話に持って行ったんだけどうまくはぐらかされて撤退してきた

エラーが起きるなら仕様なんだなって分かるんだけどエラーでない
101000はどこに行ったのか聞いてみたけどそれもよくわからんかった

gptの話だと、結局本体ではなくてコピーに代入してるそうだ
そうなのかそうなんだって、わかったふり
2024/10/01(火) 19:54:06.57ID:4yFbtrHM
他の言語と違ってVBでは配列をコピー(代入)すると
中身も含めて丸ごとコピーされる
つまりdicへの格納、取出しのたびに複製された配列が作成される
複製の中身を書き換えても元のデータは変わらない

他の言語では参照のコピーになる事が多いね
538デフォルトの名無しさん
垢版 |
2024/10/01(火) 23:57:01.81ID:UgLwFGVQ
なので参照になるようにすればエエってこと
539デフォルトの名無しさん
垢版 |
2024/10/02(水) 10:28:02.48ID:XbzwGALZ
>VBでは配列をコピー(代入)すると
>中身も含めて丸ごとコピーされる

いや他の言語でもそうだろω
540デフォルトの名無しさん
垢版 |
2024/10/02(水) 10:33:17.12ID:837aqOia
>>539
あなたは脳弱ですね
2024/10/02(水) 10:41:52.26ID:Yo3NYRw/
ByValやByRefは使えないの?
2024/10/02(水) 11:06:17.08ID:97hNZVMu
>>539
参照をコピーする言語の方が多いんじゃね
2024/10/02(水) 13:02:33.22ID:/2Ign3qJ
VBAってちょっと小難しいことし始めるとはまる
ゴリゴリ書いてれば問題起きないんだけど

>>532の続きなんだけど、
結果としてできあがったDictionaryのvalue部分をそのまんまワークシートのRangeに代入しようというのが次の課題です。

dic.Itemsで取得できる配列が、ちょうどVariant型の2次元配列っぽい
てことは、これはそのままRangeにぶち込めばいけるんか?と思ってやってみたら、#N/Aが代入されたりとよくわからん
もしかして〜と思ってWorksheetfunction.Transposeを二回かけたら、なんか成功した。
これも理由はよく分からんかったのだが、ありがとうございますTransposeさま

そもそも2回Transposeかけるとうまくいくってことがあるってのが理解できないのが俺のだめなところなんで勉強してきます
2024/10/02(水) 14:54:23.03ID:/2Ign3qJ
あーわかった
dic.Itemsで取得できる配列は(1, 1)とかではアクセスできないやつだ
(1)(1)か
これが前の疑問の答えにも繋がりそう
2024/10/03(木) 20:33:55.02ID:z+TmlZL7
(・)(・)
2024/10/06(日) 17:37:17.48ID:XBGRnPc0
VBAを利用してURL(WEBにある)画像をはりたい

【状況】
あるシート(シート1とする)のA列に画像のURL(画像.jpg)だけが多くの行数に渡りはってある。
なおそのA列の中にはURLがない行もある(1行や2行URL無かったり)

【したいこと】
上と同じシート(シート1)のB列にA列のURLにアクセスしたときの画像をはりつけたい。
またURLがはってある終りの行になったら止まるようにしたい。
なお、URL元リンク参照だけだとリンク切れしたときに画像も表示されなくなるのは困るので、
画像を埋め込んだ形にしたい。
(URL元リンク画像が変更されたときはしかたない)

どなたか教えて頂けたら助かります。

OS:windows10
Excel2013
2024/10/06(日) 22:29:50.86ID:LjW/9goQ
ブラウザ何使ってるんだろ?
548デフォルトの名無しさん
垢版 |
2024/10/06(日) 23:24:40.36ID:KFHvzP2C
>>546
HTMLにはいくつも画像があると思うけど?
549デフォルトの名無しさん
垢版 |
2024/10/07(月) 00:25:16.29ID:zYX/1qdW
>>546
セルA1に画像のURLが書かれているとき、その画像をセルB1に表示するVBAコードは
Url = Cells(1, 1)
Cells(1, 2).InsertPictureInCell (Url)

あとは Cells の第1引数を i 等に変えて、Url = "" が何回か連続するまでDo~Loop等で回せばいい

が、VBAを使うまでもなく、IMAGE関数を使うほうが楽
B1セルに
=IMAGE(A1)
と書いて、セルの右下隅にカーソルを合わせ、黒い「+」が出たらダブルクリック
550デフォルトの名無しさん
垢版 |
2024/10/07(月) 00:39:41.14ID:zYX/1qdW
自レス
>>549はやっぱうまく動かんかも
Select使う形に変更
Cells(i, 2).Select
Selection.InsertPictureInCell (Cells(i, 1))
2024/10/07(月) 07:28:10.74ID:WKTA2FMr
>>548
何言ってんだURIは一意だろ
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況