Excel VBA 質問スレ Part79

■ このスレッドは過去ログ倉庫に格納されています
2023/01/28(土) 11:46:47.21ID:mBQ16TA8
↑同じ内容を3行貼り付けること

ExcelのVBAに関する質問スレ
コード書き込みや作成依頼もOK

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

※前スレ
Excel VBA 質問スレ Part77
https://mevius.5ch.net/test/read.cgi/tech/1658009255/
Excel VBA 質問スレ Part78
https://mevius.5ch.net/test/read.cgi/tech/1667104996/

-
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
2023/02/05(日) 01:07:17.25ID:1pRHyKO9
>>92
馬鹿は黙っていればいいのに
2023/02/05(日) 04:14:48.79ID:RZ1Bi3wx
どこにバカの要素がある?
何でもかんでもバカって書くヤツこそ黙っていれば良いのに。
2023/02/05(日) 04:17:13.65ID:1pRHyKO9
馬鹿の会社って未だにXP使っているのか?
2023/02/05(日) 04:38:25.55ID:meMR2kF6
馬鹿とバカをNGワードにして
使った奴のIDもNGに入れる設定にすると幸せになれるぞ
特定の馬鹿が使っているだけだし
こいつまともな回答出来ないからNG入れても影響無いし

これ次からテンプレだな
2023/02/05(日) 04:39:38.29ID:meMR2kF6
あと零細もNGワードで良いね
2023/02/05(日) 08:05:02.67ID:vgbFa8Iy
馬鹿と言われてムキになって反応する奴にろくな奴いないから連鎖NGです
2023/02/05(日) 08:36:50.09ID:48Nyv5uk
その昔はパソコンを触るというのはプログラミングをすることだった時代があったようななかったような
2023/02/05(日) 09:08:16.60ID:RZ1Bi3wx
初めてNG機能使ったら、あぼーんみたいのがちらほら。
この機能は便利だね
2023/02/05(日) 09:22:53.60ID:y1cOfAMz
NGワードをテンプレにするのはいいね
試しに零細の馬鹿と言ってみて反応した奴はテンプレも読まずスレの助言に従うつもりもなくスルーできない本物だと早々に明らかにされる
善良な回答者が無駄に回答させられる事態を避けられるわけだ
102デフォルトの名無しさん
垢版 |
2023/02/05(日) 10:07:59.66ID:LjI82vuM
バカンスには何してる?
2023/02/05(日) 10:25:20.42ID:DaRLN+Se
ここに次スレなど無いw 本スレに戻れ乱立させるなここは隔離スレ 週末だってのに当人出没しないけど
2023/02/05(日) 10:32:43.76ID:T64VJbXT
当人て誰?
2023/02/05(日) 12:07:04.00ID:RZ1Bi3wx
気にさわる人は設定からNGワード登録がオススメ。
2023/02/05(日) 14:18:15.45ID:xvzUW3Ng
>>105
お前が一番頭が悪い.NETなんてOSに入っているだろうが
2023/02/05(日) 14:37:51.60ID:T64VJbXT
頭が悪い

追加
2023/02/05(日) 15:11:40.23ID:DaRLN+Se
じぶんのレスまでNGじゃねーかw そんなドジ踏むのは >>1 ぐらいだ ムダな改行で尻尾見えてるけどなw
2023/02/05(日) 15:41:40.49ID:xS/cNQHV
NGワードやNGIDの機能を作った人は天才だなと思った
2023/02/05(日) 16:20:36.45ID:ctxVJUwU
>>106
秀丸エディタでC#書くバカは流石にいない
2023/02/05(日) 16:46:34.16ID:vWrwcA+5
>>110
メモ帳で書く強者もいるぞw
https://qiita.com/hemuwan-kazu/items/7f31909f9844f5c145a8
2023/02/05(日) 17:32:22.36ID:xvzUW3Ng
>>110
元の書き込みをよく読め

>家ではC#、会社ではセキュリティ厳しくて.net入れられないからJavascriptかVBA
113デフォルトの名無しさん
垢版 |
2023/02/05(日) 18:46:21.19ID:K4ptPXTt
RubyとPythonもNGワードに追加で
2023/02/05(日) 20:19:59.88ID:T64VJbXT
なんか、りんなの方が賢く視えてきたw

https://i.imgur.com/rUldeaB.jpg
2023/02/05(日) 20:36:43.07ID:RZ1Bi3wx
てかさ、過去スレにうざいヤツのidはNGにすれば良いと忠告されていたのを忘れていただけよ。
本当便利だねNG設定は。
2023/02/05(日) 21:17:02.74ID:PITx2JDw
>>115
お前が原因だろうが
2023/02/06(月) 02:28:52.25ID:zHp4cAIL
NGワード推奨
「お前が原因」
2023/02/06(月) 18:40:54.26ID:aEkJZ2xc
お前が原田
2023/02/06(月) 18:49:20.28ID:XprS0Gnp
泰造です
2023/02/07(火) 12:31:38.13ID:NFcQ7tYj
このスレの人達はマクロとマグロどちらが好きですか?
2023/02/07(火) 18:23:50.30ID:azuGrvvm
>>120
マグロです
初めての女もマグロで捌くのに苦労しました
2023/02/07(火) 19:20:14.88ID:EVZJ1Jw3
そしてあそこはマックロ
2023/02/07(火) 20:54:54.09ID:uVJ5qMcc
昔の職場で女子社員がマクロの事をマグロって素で言っていたのを思い出した
2023/02/08(水) 12:26:11.89ID:oH+IvagG
104万行とか書き出したの>>1だろ カタカナだったのをアルファベット表記に変えて誤魔化してるけど
いっつも何か抜けた質問なのはクリソツだ
2023/02/08(水) 14:01:46.08ID:9o6t5jzk
://jp.quora.com/エクセルの機能でマクロがありますが、ミクロもあり
ますか?
126デフォルトの名無しさん
垢版 |
2023/02/08(水) 15:35:30.93ID:FTgAG7p2
あなたの後ろにドクロが見えます
2023/02/09(木) 18:10:13.26ID:aJtl4Osy
ももクロは?
128デフォルトの名無しさん
垢版 |
2023/02/09(木) 20:08:27.21ID:zbgEdy/S
無職の息子が事務に就職するためにマクロの資格を取ると言っているのですが
そんな役に立つか分からないものじゃなくもっと事務の仕事に役立つ簿記をとってほしいと言っても聞きません
マクロを使われている皆さんから見てもマクロの資格しかない人間なんか採りませんよね?
2023/02/09(木) 20:11:01.11ID:oRtRHGsJ
>>128
おっしゃる通りだね
VBAは属人化の最たる物だからかえってマイナスかも
2023/02/09(木) 20:13:24.22ID:WlGsC4V+
>>128
マクロの資格は事務の仕事に必要なスキルの一つですが、単独では仕事に適していない場合もあります。簿記の資格や事務に関連する他のスキルを備えた人材が求められることもあります。そのため、マクロの資格だけでは応募になれない場合もあります。

あなたの息子が今後のキャリアアップに向けて考えておくべきは、職場で必要とされるスキルを持っていることです。簿記の資格も含め、仕事に役立つスキルを身につけることで、より魅力的な人材になることができます。
2023/02/09(木) 21:06:41.73ID:1BKoKxeD
>>128
両方とればいい、資格がある方が有利ってだけの話
そうそううまくいかないのが世の中
132デフォルトの名無しさん
垢版 |
2023/02/09(木) 21:11:22.86ID:eLe3MrDF
>>129
>>130
やはりそうですよね、落ち着いてもう一度話してみようと思います
マクロを事務で使うことなんてないし
マクロは記録するものなのに見栄をはってマクロを書けるなんておかしな表現をするようでは資格があったとしても取れはしないと
133デフォルトの名無しさん
垢版 |
2023/02/09(木) 21:15:03.44ID:9v0l8GAr
>>131
そうだとしてもまずは簿記から取らせるべきですよね?
それにエクセルの資格でもマクロだけのものよりもエクセル全体の資格のほうが事務能力を評価してもらえると思います
2023/02/09(木) 22:00:25.94ID:nBzxeXqK
マクロを知らない馬鹿にVBAを使えずに僻んでいる馬鹿が答えて馬鹿同士で納得していて笑った
2023/02/09(木) 22:03:18.17ID:1BKoKxeD
>>133
本人が興味ない資格の勉強しても覚えられるとは思えん
やりたいようにやらせるがいい、結局は自己責任
2023/02/09(木) 22:48:14.12ID:5M6BEBFG
>>133
簿記2級ねらった方が良いよね
事務職なら
話はそれからだ
2023/02/10(金) 00:03:29.76ID:YH2SeA6S
>>134
馬鹿を連呼する馬鹿がいるスレはここですか?
138デフォルトの名無しさん
垢版 |
2023/02/10(金) 07:22:18.13ID:jDe/a0Sf
と、馬鹿が申しております。
2023/02/10(金) 07:56:54.21ID:X5Ej7qVR
連続あぼーんワロた
2023/02/10(金) 09:26:00.78ID:sM1HDV8m
変数として用意した配列(例えば100行×5列等)にデータを入れ、その配列に対してvlookupやmatchのような関数を当てたいのですが可能でしょうか?可能であればどのように記述出来るのでしょうか?
現在はよく分からず多重if, forで誤魔化してます
2023/02/10(金) 09:43:26.29ID:X5Ej7qVR
(tmp) = VlookUp(引数)みたいな感じ??
2023/02/10(金) 12:22:05.62ID:PIkGF45X
配列に対してはムリだと思う。dictionaryなんか使ってやれば似たようなことは無理やりできるかもだけどそれならいちどシートに書き出してworksheetfunctionでシート関数を使ったほうが簡単。
EXCEL VBAの配列操作が貧弱なのはシートでできるからだと割り切ってる。2次元限定だけど。
2023/02/10(金) 15:39:36.07ID:WNti9dgN
https://i.imgur.com/JgKY39B.jpg

自治会の総会集計を頼まれて、書面表決導入でお助けください

議案は1~5まであり、個別でも一括でもいいとしています
賛成・反対・棄権でひとつのブロックとして、一括ブロックに数値がある場合で議案1~5ブロックが未記入の場合にコピーしたいです
コピーするのは世帯人数に数値がある行までです

この例だと3行目何もせず、4と5行目は議案1~5に一括ブロックをコピー
6行目は議案3のみに一括ブロックをコピー

VBAでの組み方をご指南ください
2023/02/10(金) 17:37:33.44ID:i/BO22nF
そんなの何十行もあるわけじゃあるまいし手動でもいいと思うが
2023/02/10(金) 18:08:35.29ID:WNti9dgN
500行あるんす
2023/02/10(金) 18:10:14.38ID:i/BO22nF
すげー自治会だな
2023/02/10(金) 18:26:50.24ID:VmkjxzjW
>>143
このシートを「データ」シートにしてもう1つシート作ってそれを「集計シート」にして計算式でやったほうが楽だと思う
2023/02/10(金) 18:37:45.48ID:A9tz9okE
>一括ブロックに数値がある場合で、
>議案1〜5ブロックが未記入の場合にコピーしたい

議案1〜5ブロックは、個別の数なのか?

それなら、議案1〜5ブロックに数値が書かれている場合にも、
一括ブロックの数値を足さないといけないのでは?
149148
垢版 |
2023/02/10(金) 18:43:32.78ID:A9tz9okE
1. まず、一括ブロックと議案1〜5ブロックの空欄にも、0 を入れる。
これで全てのセルに、何らかの数値が入る

2. 次に、一括ブロックの数値を、議案1〜5ブロックに足していく
150デフォルトの名無しさん
垢版 |
2023/02/10(金) 19:17:16.32ID:6IlNtWZO
>>143
俺なら、
世帯行(3行〜データ無くなるまで)と
議案列(この場合5回)の二重ループ内させて
一括Gの入力判定して議案空白の列に載せていく
2023/02/10(金) 19:31:04.95ID:IBbxfpHM
>>143

自分も>>150と同じ方法でやるかな。

ちなみに実際にコード書いてみたら22行だった
(変数の取り方とかで多少ずれるけどほぼこのくらいかと)。
2023/02/10(金) 19:32:46.64ID:WNti9dgN
>>148
基本賛成だけど、この議案だけ反対って場合は一括賛成、個別反対を許すようにした
個別入ってるときはそっち優先
なるべく入力を減らす配慮

>>150
それがやりたいっす
>>151
く、くださいっ
153デフォルトの名無しさん
垢版 |
2023/02/10(金) 20:01:37.48ID:DfKN5OB+
>>152
関数で解決できそうなら無理にVBAで解決することもないと思う

で、これはやりたいことと解決したいことが合ってるのか気になっての質問なんだけど
6行目、議案3の他に2,4も世帯人数と比べ回答数が少ないように見えるけどそこには何もしなくていいの?
154151
垢版 |
2023/02/10(金) 20:45:28.82ID:IBbxfpHM
>>152

コードは下記。
今回は記述してないが、500行あるなら
screenupdatingをfalseにした方がいいかと。

Sub 議決()

Dim i As Long, j As Long
Dim r1 As Range, r2 As Range 'r1は一括の空白数取得用、r2は各議案の空白数取得用
Dim rowNumber As Long 'データが埋まっている行数取得用

rowNumber = Cells(Rows.Count, 1).End(xlUp).row

For i = 3 To rowNumber
Set r1 = Range(Cells(i, 2), Cells(i, 4))

If WorksheetFunction.CountBlank(r1) <> 3 Then
For j = 5 To 17 Step 3
Set r2 = Range(Cells(i, j), Cells(i, j + 2))
If WorksheetFunction.CountBlank(r2) = 3 Then
r2 = r1.Value
End If
Next j
End If
Next i

End Sub
2023/02/10(金) 21:17:11.72ID:WNti9dgN
>>153
その数値の整合性は表決者依存にしました
議案4に個別したらそれを尊重すると

>>154
で、できました
ささっと作ってくれるってすごいです
ありがとうございます
総会乗りきれます!
156デフォルトの名無しさん
垢版 |
2023/02/10(金) 21:52:52.21ID:ciEsiTU6
>>155
9人世帯の議案4には棄権1しか入っていないけど、これは
一括に関係なく議案4に個別で入れた人が棄権1人しかいなかった
その上で9人世帯は議案4に関して棄権1名のみとして扱う
みたいな解釈でいいのかな?
一括が何票あろうが個別1票のが上みたいな
単純に各議案ごとに全世帯での票数を計上したいわけじゃなさそうだよね
2023/02/10(金) 22:03:07.12ID:ix/AvTMJ
>>140
セル範囲指定するとに配列の変数名指定するだけ
バリアント型じゃないと無理かもしれん

>>142
WorksheetFunctionでセル範囲指定する奴はほとんど配列でもいける
というか、VBAにわたってくるときに内部的に配列になってるはず
2023/02/10(金) 22:07:47.74ID:ix/AvTMJ
参考コード
Option Base 1
Sub x()
Dim a(10, 2)
For i = 1 To 10
a(i, 1) = i: a(i, 2) = i & "だよ"
Next
MsgBox WorksheetFunction.VLookup(7, a, 2)
End Sub
2023/02/11(土) 03:59:07.46ID:aNcmPbDM
>>156
実際はシャンシャン総会なので一括賛成で終わると思ってます
書面7割、ネット3割を想定
ネットはGoogle Formsを使うので、定義として全項目スキップできるようにしてあって
概ね賛成だけど議案4だけ個別回答
その場合は表決者がつじつま合わせないとその議案はそっち優先にしますよとしています
160デフォルトの名無しさん
垢版 |
2023/02/11(土) 07:30:30.25ID:6Ch2sdKJ
>>158
マジか!!! と思って試してみたらマジだったw

んで個人的によく使うmin,max,match,countifを試してみたら
min,maxはできたけどmatch,countifはダメだった。
要素の中身を取り出す系の関数はいける感じかな?

ひとつ理解が深まった気がするよ。ありがとう。
2023/02/11(土) 08:41:56.27ID:DG09Hgtn
Subtotalって集計キーを2つ指定したいときはどうやるの?
162デフォルトの名無しさん
垢版 |
2023/02/11(土) 09:45:09.37ID:jORavOuf
sumproduct
2023/02/11(土) 19:56:49.54ID:uHiybqGX
マクロの資格とかあるの?MOSのこと?
2023/02/11(土) 20:04:45.09ID:cvm4+SaB
そいやあるのかね、言語としては古くてしょうもないが
2023/02/11(土) 20:10:27.29ID:9czFn3SB
VBAエキスパートという民間資格
MOS ビジネス統計すぺしゃりすと IC3 あどび認定ぷろふぇっしょなる Microsoft認定資格 App Development with Swift IT Specialist えtc
https://www.odyssey-com.co.jp/index.html
2023/02/11(土) 20:16:37.74ID:uHiybqGX
ありがとう。あるんですね。
2023/02/11(土) 20:18:50.78ID:uHiybqGX
イミディエイトウィンドウでは実行できないステートメントはどれか。次の中から1つ選びなさい。

1.?Range("A5").Value
2.MsgBox "Hello!"
3.Dim x As Integer
4.For i = 1 To 10:total = total + i:Next i:Print total

3番かな?
2023/02/11(土) 20:20:26.56ID:uHiybqGX
次のような2つのプロシージャを同一の標準モジュール上に作成した。「M_Proc」プロシージャの実行結果はどうなるか。次の中から正しいものを1つ選びなさい。

Sub M_Proc ()
Dim a As Long
a = F_Proc(3)
MsgBox a
End Sub

Function F_Proc(Optional x As Long = 5) As Long
F_Proc = x * 2
End Function

---
@6
A9
B10
C実行時エラーが発生する
2023/02/11(土) 20:23:23.87ID:uHiybqGX
Optional x As Long = 5
って何?この引数。
2023/02/11(土) 20:25:24.81ID:uHiybqGX
次のプロシージャはセルA1の値に応じてメッセージを表示するものである。セルA1の値が3未満だったら「A」と表示させたい。このとき、【 1 】に入る適切な命令を解答欄に入力しなさい。

Sub Sample()
Select Case Range("A1").Value
Case 【 1 】
MsgBox "A"
Case 5
MsgBox "B"
Case 7 To 9
MsgBox "C"
Case Else
MsgBox "該当なし"
End Select
End Sub
2023/02/11(土) 20:30:06.33ID:uHiybqGX
資格が役立つかさておき、いい問題だね。
2023/02/11(土) 21:14:28.92ID:nDlYjCHU
>>169
省略引数でしょ
って言うか vba optional でググれ
2023/02/12(日) 08:33:11.90ID:aoDTDGlX
vba解説してるサイト見たら皆プロシージャの最後に
set obj = nothing '後始末
ってやってるけどあれ循環参照以外で意味ある?

やらずにadodbとかseleniumで10万回以上実行してるけど何の問題も起こらない
2023/02/12(日) 09:18:22.71ID:19IYgGC6
>>173
意味ない
循環参照でもそれで解決するならやらなくても解決する
2023/02/12(日) 11:39:10.47ID:71AjNYz+
.cels(1,1) = 〇〇
セル指定で行や列の連番を簡単に入力する方法ってありますか?
以下のようにオートフィルのような感じでコードを作成したいです。

.cels(1,2) = 〇〇
.cels(1,3) = 〇〇
.cels(1,4) = 〇〇
2023/02/12(日) 13:09:04.90ID:aoDTDGlX
>>174
これからも書かない事にしときます

>>175
こういう事?

Sub a()
Dim i
For i = 2 To 10
Cells(i, 1) = i
Next
End Sub
2023/02/12(日) 13:12:25.71ID:+dHL9JcR
>>175
For で回すのがだめな理由を書いて
2023/02/12(日) 13:17:48.68ID:GOWa9Zgu
>>175
連続するセルに違う内容を書き込みたいんなら配列を使う手もある
Range("B1:D1") = Array("あああ","いいい","ううう")
179デフォルトの名無しさん
垢版 |
2023/02/12(日) 15:04:05.55ID:uHFAq1f0
>>175
celsの用語が間違っているのと、
○○を "○○" のように書けば簡単に入力できますよ
180デフォルトの名無しさん
垢版 |
2023/02/12(日) 18:33:42.43ID:T5GBSGpP
>>175
.celLs(1,1) = 〇〇 をワークシートに貼り付けて
フィルハンドルを下にドラッグしたら簡単ですよ
2023/02/13(月) 00:34:04.23ID:pezzuKY3
わざとやってるだろw
182デフォルトの名無しさん
垢版 |
2023/02/13(月) 10:11:26.26ID:QGUistpW
暇潰しで初心者のふりしてるように見えるね
2023/02/13(月) 14:01:41.50ID:b7LuPfio
>>173
通常のローカル変数に対しては、意味がない
本当にプロシージャの最後で通常のローカル変数なら、循環参照でも意味はない

書くのが良い作法とされる流派はあるが、それどこの解説ページだ?
いまどきは、皆って言うほど書く人はいないイメージだがな

>>174
通常のローカル変数じゃなければ意味はあるかもしれんぞ
2023/02/13(月) 14:31:44.50ID:CpfiRcck
>>183
> 通常のローカル変数じゃなければ意味はあるかもしれんぞ
どんなケース?
2023/02/14(火) 03:25:36.32ID:zG3Q3kn7
>>184
通常のローカル変数じゃないんだから
グローバル変数とか、Static変数とかだろ
2023/02/14(火) 06:05:43.15ID:3/1aS8Pe
>>183
> >>173

collectionとかに格納したオブジェクト変数なんかはちゃんと開放されてるのか不安にはなるね。
2023/02/18(土) 22:43:39.59ID:6PWZugQu
windows10アップーデートしたけど、普通にvbaでIE操作できるね。助かったわ
2023/02/19(日) 01:32:52.35ID:15y14fHP
EdgeのIEモードは実質IEが動いてるのでな
いまの所MSも2029年まではIEは裏方で生き長らえる保証してるから安心していいぞ
どうせ6年後もWindowsが存在してればIEの寿命も延長されるだろうよ
2023/02/19(日) 02:32:29.18ID:hw6q8la/
Windows12の噂もちらほらだからまだまだ消えないだろうや
2023/02/19(日) 13:49:26.92ID:Uh8lBtn9
セル内にある数式の"="を削除する方法はありますか
テキストとして、”A1-A2”などだけが残るようにしたいのです
2023/02/19(日) 14:00:41.05ID:De+xjlNk
>>190
Range("A1") = Mid(Range("A1").Formula, 2, 999)
192デフォルトの名無しさん
垢版 |
2023/02/19(日) 16:05:55.05ID:QuMlk2qt
ワークシート関数なら
=SUBSTITUTE(FORMULATEXT(A1),"=","",1)
■ このスレッドは過去ログ倉庫に格納されています