Excel VBA 質問スレ Part77

■ このスレッドは過去ログ倉庫に格納されています
2022/07/17(日) 07:07:35.59ID:tS4zKdphH
!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512
↑同じ内容を3行貼り付けること

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

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

※前スレ
Excel VBA 質問スレ Part76
https://mevius.5ch.net/test/read.cgi/tech/1651339421/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
2022/08/07(日) 10:09:42.78ID:eoT1bhw/0
スレにまったく関係ないけど思い出した
取引先からある事情でビジネスマナー講義の受講(講師はそこの女社員)を強制されたことがあって
最初ら違和感あった(俺の親が逝ったと告げても何の反応もなしとか)けど講義内容に矛盾があったので指摘すると猛烈な人格批判が始まって驚いた
他日ウチの社長がそいつの社長(中小同士で学生からの友人)に会いに行ったときにちょっと遅刻したことがあって
秘書気取りのその女が用事があるからと言いつつウチの社長を小一時間ほど待たせた
流石に何かおかしいと思ったウチの社長が事情を問うと「取引相手を待たせるのはトップ失格だそれを自覚させるためにやった」などと主張したそうだ
つまり一種のコミュ障でコンプレックスある女が他人を見下ろすために知識の寄せ集めだけで副業に仕事をしていたって話
冒頭のある事情ってのも察してもらえれば
2022/08/07(日) 10:59:56.86ID:iThpGePG0
性格や考え方に問題あっても知識があるならいいんじゃね
実務経験があっても知識のない上司に相談して解決するならそうすればいいし
そもそも自分に知識があれば全て解決できるわけなんだが
2022/08/07(日) 11:09:10.44ID:UpuFs56f0
日本の企業は人材の性格も重要視するもんね。
能力あっても人間がクソなら採用見送ったり出世対象から外したり。
2022/08/07(日) 12:24:17.99ID:uNtQuwFMd
性格は欧米の方が重視されるぞ
文化的民族的背景が多様で自己主張も激しいから、クソ野郎は問答無用で切っていかないと無茶苦茶になる
日本はなんだかんだそこまで酷い人間は稀だからな
2022/08/07(日) 12:57:45.84ID:TWy7Xhzwr
>>268が不明瞭なので補足
寄せ集めの知識というのは複数著者のテキストを咀嚼せず文字通りコピペしてるって意味
例えばビジネスコミュニケーションでは科学的根拠に基づかなければいけないというパワポ資料の次ページでナントカ占いみたいな性格判断が出てきたりとか
2022/08/07(日) 14:41:48.83ID:JbyM4yYv0
説明が下手くそな輩ばっかだなこのスレ
2022/08/07(日) 15:39:52.33ID:TKajqBRY0
>>273
確かにそうだな
ここはお前の力の魅せどころだぞ
2022/08/07(日) 16:25:54.73ID:UpuFs56f0
いや、言っている事は分かるから全然良いですよ
ただ、要点だけまとめてくれたら読みやすいかなーと。
同志達たのんます。
276デフォルトの名無しさん (スッップ Sd33-KFxy)
垢版 |
2022/08/07(日) 17:53:18.30ID:iCiStKaEd
VBAと関係ないおっさん達の自分語りはいつ頃終わりますか?
2022/08/07(日) 17:57:35.06ID:fAQAAmLc0
>>276
お前みたいに構うやつがいなくなるまで無理じゃね
2022/08/07(日) 18:06:12.30ID:/jCP59e6d
>>276
ほんと他で話せばいいのにと思うよな
質問来てもろくな回答もできないからこういう答えの不要なレスするしかないんだろ
279デフォルトの名無しさん (ワッチョイ 134f-1ikx)
垢版 |
2022/08/07(日) 18:32:46.70ID:NS+q4Bfp0
まぁ質問者がいないときはいつもこんな感じだけどな
2022/08/08(月) 10:19:45.18ID:wk4U/6Hx0
質問いいですか?
2022/08/08(月) 14:27:36.15ID:aqubZxNB0
どうぞ
2022/08/08(月) 22:16:45.25ID:bMElgXf+d
VBA でモテるにはどうしたら良いですか?
283デフォルトの名無しさん (スッップ Sd33-D0hd)
垢版 |
2022/08/08(月) 22:25:23.54ID:ptVxpUmad
そんなことをここで聞いてる時点で無理
2022/08/09(火) 10:07:28.51ID:b44kZqNV0
Excelできれば女子にモテるぞww
とか言われたからExcel始めたけど
ウソだったわ。
逆にキモがられるようになったら。
2022/08/09(火) 10:20:16.32ID:/NfYTDtW0
>>248
カプコンの1943思い出した
ステージクリアで尉官が上がって最終的に特別中将だったかな
よく考えたら社長クラスが一人で突撃w
2022/08/09(火) 11:12:29.84ID:SavN6yJh0
Excel出来るようになったのではなく他に問題があるのでは🤔
2022/08/09(火) 14:08:30.02ID:rR0EJQ8B0
>>284
だまされたんだと思う、もうExcelやめた方がいいよ
2022/08/09(火) 14:53:29.86ID:b44kZqNV0
>>287
分かった。
Wordに移行するわ。
2022/08/09(火) 15:01:15.06ID:SavN6yJh0
2022/08/09(火) 15:23:13.16ID:8JIsTWChM
Excelできるけど仕事はできない人
2022/08/09(火) 20:40:53.82ID:AVc3PDFp0
パワポ男子の方が格好いいと思うなあ
2022/08/10(水) 08:38:11.60ID:fdOq6fLVd
excel365でファイルを更新した形跡を全く残さない方法って何かありませんか?
弄る部分はマクロのコードのみです
業務を格段に楽にするマクロをいくつも組んでやったのに感謝も薄く図々しく給与にもビタイチ反映されなかったので
このクソブラック企業を辞めるときに全部壊していきたいのですがバレるとアウトなので
変えないようにしたいのはファイル名の横に出る更新日時です
2022/08/10(水) 09:10:02.43ID:ph9U25aD0
エクセルのVBAって2000から現在までの間に
ここで大きく変更があって互換性に問題があるみたいなのありますか?
2022/08/10(水) 10:06:18.63ID:kx7L/9BB0
>>292
一応言っておくけどお前のやろうとしてることは犯罪だし、回答書くと犯罪幇助になるから
2022/08/10(水) 10:07:16.58ID:kx7L/9BB0
>>293
2007 辺でグラフ周りが色々変わって過去のマクロでエラー出たことがある
2022/08/10(水) 10:10:55.76ID:uspPIoStd
そこそこあると思うよ
なので自分はバージョンごとにコードを振り分けたりした
実際に試したほうがいいんじゃないかな
2022/08/10(水) 10:22:34.51ID:20iS7AqN0
>>293
64bit化、ワークシートの大きさ、ワークシート関数の増減など、バージョンごとにどんどん変わってる
何を問題とするかは人それぞれで、利用環境や目的にもよるので、ちょっと質問が曖昧すぎ
298デフォルトの名無しさん (スッップ Sd33-D0hd)
垢版 |
2022/08/10(水) 10:36:03.23ID:p8b8cWYPd
>>292

こいつみたいなのがまさにこういうパターンだ

馬鹿が内容も理解せずコピペで作ったマクロのせいで間違いが発生していた
コピペ主体だからメンテ不可能だった
そのくせ馬鹿は自分が他の人より偉いと思い込んでいた
2022/08/10(水) 11:45:31.80ID:uspPIoStd
犯罪の質問なんて無視しとけよ
構うお前も同じなんだぞ
300デフォルトの名無しさん (スプッッ Sd73-KFxy)
垢版 |
2022/08/10(水) 11:53:09.98ID:5QJKzNy5d
嫌がらせして辞めたところで迷惑を被るのは同じ作業してるポジションの人か後任の人だろうからやめとけ
査定をしてる立場の人達は痛くも痒くもない
2022/08/10(水) 12:39:15.19ID:fdOq6fLVd
うちのブラックに来たら誰でも同じことしたくなると思うけど
犯罪なのは分かったからやめとくわ
あと言っとくけどうちにはマクロ組めるような奴はいないし
体系的に学んだ上きれいなコードで書いてるからくだらんレッテルはいらない
2022/08/10(水) 12:55:04.32ID:/NkHb0sD0
>>292
マクロ作るのもあなたの業務だったのでは?
会社で仕事して給料もらえてたのにそれ以上のことなんかないよ
2022/08/10(水) 13:53:09.69ID:kx7L/9BB0
> 犯罪なのは分かったからやめとくわ
犯罪じゃないと思ってたのかよ...
まじでヤベー奴やんw
304デフォルトの名無しさん (ワッチョイ 134f-1ikx)
垢版 |
2022/08/10(水) 14:04:12.08ID:0PwnBNIZ0
気持ちは分かるが犯罪はいけないな。
次回からはそういうことに備えて
マクロにパスワード掛けて
時間が経ったら期限切れのメッセージでも
ポップアップして処理を中断させる
ようにでもしておけばいい。

もっとも、自分の作業効率化のために
頼まれてもいないのに勝手に作ったというなら
根こそぎ消しても問題ないとは思うけどな
どうしてもしたいというなら
法テラスにでも相談しに行けばいい。
2022/08/10(水) 14:26:23.92ID:Mq4biE7dM
If Date > 退職日 Then
Exit Sub
End If

あとは全部インデントなくすとかコロンで繋げるとかプロシージャ名を処理内容と紐づかないものにするとか

色々引き継ぎの嫌がらせは考えたことあるけど、やったら何訴えられるかわからんからやらない
306デフォルトの名無しさん (スプッッ Sd73-KFxy)
垢版 |
2022/08/10(水) 14:28:02.85ID:5QJKzNy5d
てか保守出来る人居ないなら何もしなくてもそのうち会社は面倒事に巻き込まれるだろ

フォーマットがちょっと変わったり、新しい特殊な項目が追加されて使いものにならなくなったりするし
2022/08/10(水) 15:51:28.73ID:uspPIoStd
放置すればいいものを
くだらない話には食いつく奴ばかりだね
2022/08/10(水) 15:58:20.27ID:AlyojMao0
123 10
123 11
123 15
空白
空白
124 18
124 22
空白
125 20
空白
126 15
126 10

みたいな並びのコードがあって、
上下のコードが同じ場合、コードの隣の数字を10%で割り戻した数字を計算したものと、10の数字をそのままにしたものを2つ持っておいて、コードが変わるところまでそれぞれ計算したら、コード単位で10%で割り戻したものの合計値と、割り戻してないものの合計値の差分を
一行挿入して差額として123のいくらと転記
空白行は無視。
差額が出ない場合(基本的にはないけど)は行の挿入はしない、
というvbaって作るの可能?
差額を持たせることまではできたんだが、
挿入のところでこれ無理では?と思って止まってます。
2022/08/10(水) 16:00:49.46ID:AlyojMao0
ちなみにデフォルトで入ってる空白は無視です
2022/08/10(水) 18:18:34.25ID:kx7L/9BB0
>>308
挿入/削除はいろいろ面倒だから簡単にやるには別シート(もしくは別列)に転記しながら処理して最後に書き戻すのがわかりやすいと思う
スマホから入力してるから細かいミスはあると思うがこんな感じ
Dim S1 As WorkSheet: Set S1 = WorkSheets(1)
Dim S2 As WorkSheet: Set S2 = WorkSheets(2) ' 空のシート
Dim R1 As Long
Dim R2 As Long: R2 = 1
Dim N0 As Long: N0 = 0 ' 元の値合計
Dim N1 As Long: N1 = 0 ' 割戻し合計
Dim C0 As String ' 処理中のコード
C0 = S1.Cells(1, 1).Value
For R1 = 1 To S1.Cells(S1.Rows.Count, 1).End(xlUp).Row
Dim C1 As String ' 現在のコード
C1 = S1.Cells(R1, 1).Value
If C1 = "" Then Goto Continue
If C0 <> C1 Then
S2.Cells(R2, 1).Value = C0
S2.Cells(R2, 2).Value = "差額: " & CStr(N0 - N1)
R2 = R2 + 1
C0 = C1: N0 = 0: N1 = 0
End If
S2.Cells(R2, 1).Value = C1
Dim N2 As Long: N2 = S1.Cells(R1, 2).Value
S2.Cells(R2, 2).Value = N2
R2 = R2 + 1
N0 = N0 + N2: N1 = N1 + 0.9 * N2
Continue:
Next
S2.Cells(R2, 1).Value = C0
S2.Cells(R2, 2).Value = "差額: " & CStr(N0 - N1)
2022/08/10(水) 19:06:30.56ID:LEtlyiDn0
スマホからこんだけ入力するのは感心するわ
2022/08/10(水) 19:40:10.67ID:AlyojMao0
>>310
ありがとうー!!
後半のC1:N0あたりの動きが読み取るのがちょっと難しいですが、
別シートに単純に一度書き写していって最後に読み戻すってのは目から鱗です
確かにそっちの方が問題なくできるかもしれないです
試してみます!
2022/08/10(水) 20:46:14.74ID:kx7L/9BB0
>>312
> 後半のC1:N0あたりの動きが読み取るのがちょっと難しいですが、
If C0 <> C1 Then
で、コードが変わった事を検出して変わったら

S2.Cells(R2, 1).Value = C0
S2.Cells(R2, 2).Value = "差額: " & CStr(N0 - N1)
R2 = R2 + 1
で、差分を追加して

C0 = C1: N0 = 0: N1 = 0
で、新しいコードを覚える共に合計値を初期化してる
314デフォルトの名無しさん (スッップ Sd33-D0hd)
垢版 |
2022/08/10(水) 20:48:55.75ID:p8b8cWYPd
こんなことがわからない奴が金計算をVBAでするなんて
2022/08/10(水) 20:57:23.40ID:ph9U25aD0
テキストファイルからキーワードが含まれてる行をセルに書き込みたいです
キーワードが8個あります
行=Bを「商品」か「価格」を""に置換して
元のBと違ってたら書き込むようにしたんですが
もっと簡素な方法ありませんか?

Open A For Input As #1'Aはテキストファイルのフルパス
Do Until EOF(1)
Line Input #1, B '1行分だけ読み込み
If B <> Replace(B, "商品", "") Then
i = i + 1
Cells(i, 1) = B 'セルへ入力
Else
If B <> Replace(B, "価格", "") Then
i = i + 1
Cells(i, 1) = B 'セルへ入力
End If
End If
Loop
Close
2022/08/10(水) 21:00:16.39ID:hNnMWsb/0
なんで商品と価格のReplaceを分けるのか
317デフォルトの名無しさん (ワッチョイ 134f-1ikx)
垢版 |
2022/08/10(水) 21:07:20.86ID:0PwnBNIZ0
>>315
InStrは嫌いなの?
2022/08/10(水) 21:43:46.56ID:AlyojMao0
>>313
ありがとうございます、
勉強中なので質問なんですが、
C1:N0 =0:N1=0の中の:ってどういう意味なんでしょうか?
2022/08/10(水) 22:04:25.44ID:NcNdkaPG0
突っ込みどころ満載の質問久しぶりね
2022/08/10(水) 22:24:43.27ID:kx7L/9BB0
>>315
> キーワードが8個あります
これはどうなったの?
単に複数のキーワードが含まれてるかを見たいだけなら
Line Input #1, B '1行分だけ読み込み
Dim K As Variant
For Each K In Split("商品,価格", ",")
If B Like "*" & K & "*" Then
Cells(i, 1).Value = B
i = i + 1
Exit For
End If
Next
2022/08/10(水) 22:31:30.17ID:uspPIoStd
>>315
どんなやり方でもいいと思うけどキーワードを含むかどうかを関数にするといいんじゃない
Function CheckKeyword(ByVal pValue As String) As Boolean
CheckKeyword = True
If pValue <> Replace(pValue, "商品", "") Then
Exit Function
End If
If pValue <> Replace(pValue, "価格", "") Then
Exit Function
End If
残りのキーワードも同様に判定
CheckKeyword = False
End Function
これを使えば
i = i + 1
Cells(i, 1) = B 'セルへ入力
の部分は1つでいいよね
2022/08/10(水) 23:03:22.07ID:kx7L/9BB0
>>318
VBA マルチステートメント
でググってくれ
2022/08/10(水) 23:23:06.57ID:20iS7AqN0
>>318
改行みたいなもん。たとえば
N0 = 0
N1 = 0
という複数行のコードを1行にまとめることができる
N0 = 0: N1 = 0
だけど、やらない方がいいと言われている
2022/08/11(木) 19:50:59.53ID:eLvp/vGod
変数宣言と同時に初期化する用途に限って俺は許容してるな
それよりif文を1行で閉じる奴が凶悪
ネストするとEnd ifの数が合わなくなる
325デフォルトの名無しさん (ワッチョイ 134f-1ikx)
垢版 |
2022/08/11(木) 20:39:49.16ID:Eqlf5oxG0
>>324
変数宣言と一緒に初期値設定する人はよく見かけるしアリだと思う。
同様に実は特殊な場合に限りIf文を一行で記載することもある。
本来構造化言語で使わない方が良いとされているGoto文も特殊な場合に限り使うこともある。

VBAは結構何でもありの言語だからその辺、仕事場のコーディングルールや
作ってる人のマイルールによって随分違いが出てくる。

一概にどんな方法をとることが最善とは言えないから人の書いたソース見てると面白い。
2022/08/11(木) 20:49:36.22ID:bTQMDZYqd
Ifの中身が1行だけの時に全体を1行で書くのはマルチステートメントとは違うくない?
If a = 0 Then b =0
あくまでコロンでつなぐ場合のことでしょ
2022/08/11(木) 21:33:22.70ID:7cUH/Z7I0
俺も本来はマルチステートメントは使わないけど、5chのレスは行数制限あるからマルチステートメントにしてるだけ
そもそもこの手の話は好みもあってどっちが正しいとかはないからそろそろやめようよ
2022/08/11(木) 22:00:47.13ID:/ib3rHvC0
そもそもダメだとか誰が言っているのだろうか。。
2022/08/11(木) 22:06:50.77ID:x7jgcVjyd
○○ならアリって言ってるってことはそれ以外はナシって受け取る人もいるだろ
提供されたコードをそのまま使うだけしかできないならそれだけの話だし
自分のルールに従って直せばいいだけの話で人のコードにケチ付ける必要なんてないだろ
2022/08/11(木) 22:15:21.71ID:7cUH/Z7I0
>>328
> だけど、やらない方がいいと言われている
みたいな意見があるから
2022/08/12(金) 00:11:05.61ID:gP2cSn76d
コーディングルールなんて宗教みたいなもんだけど、一応マルチステートメントは推奨されないという意見のが多数
リーダブルコードにも書いてあるし、MS公式も推奨しないと言ってる
https://docs.microsoft.com/ja-jp/dotnet/visual-basic/programming-guide/language-features/statements

明確に禁止したがってる人は肌感覚でもっと少数派だけどね
2022/08/12(金) 00:24:13.41ID:nWfz+VWs0
どうせ仕事でVBA作ってる質問者なんて少ないやろ
2022/08/12(金) 05:00:53.71ID:zAuzG+foa
>>331
おっちゃんそれVBAじゃなくてVB.NETのドキュメントやで
334デフォルトの名無しさん (ワッチョイ 134f-1ikx)
垢版 |
2022/08/12(金) 05:44:37.34ID:Icr7mfuu0
Van.Netなら変数宣言と同時に初期値設定出来るから
引き合いに出すのもお門違いだな
335デフォルトの名無しさん (ブーイモ MM85-7aqZ)
垢版 |
2022/08/12(金) 06:23:06.84ID:dDX14IC1M
>>334
van.netなどない、このハゲ!
2022/08/12(金) 08:48:11.58ID:nWfz+VWs0
中のVBAのコードだけGitに上げることってできるの?
めんどいコマンドとか外部サービス使わずに
そもVBEからコミットとかプルリクとかやりたい
337デフォルトの名無しさん (ワッチョイ 134f-1ikx)
垢版 |
2022/08/12(金) 09:02:48.49ID:Icr7mfuu0
>>335
すまん、VB.Netの間違いだった
しかし俺は禿げてはいない。頭頂点しかな!!
338デフォルトの名無しさん (ワッチョイ 134f-1ikx)
垢版 |
2022/08/12(金) 09:16:28.60ID:Icr7mfuu0
>>336
まあコードをエクスポートしたものを載っけておくくらいかな。
Bisual Sutadioみたいにエデイタ上から設定するのは無理だと思った。

て言うかコードだけ取っておいてもexcelのVBAの場合はexcelそのものに影響されるところも多いから
excelごと取っておいてソースを比較したいときだけ何かのツールでソースの比較を行った方がいいと思う。
2022/08/12(金) 12:38:04.21ID:Oc3JB1Iir
Bisual Sutadio
2022/08/12(金) 12:52:14.02ID:kbIhrpmL0
>>336
今のVBAでGitは見たことないけど
昔VSSで管理するアドインがあったから、アドイン作ればできるんじゃね

>>338
マクロ入ってるエクセルはどうか知らんが、今のエクセルってXMLをzipで固めただけのはずだから
Zip解答してソース管理に突っ込む手もあるかもしれん
つかお前の誤字はわざとかこのハゲ
2022/08/12(金) 16:32:51.36ID:BEh6dSX60
お前ら禿好きだな
342デフォルトの名無しさん (ワッチョイ 5374-7aqZ)
垢版 |
2022/08/12(金) 16:38:58.11ID:eSjTAJcc0
↑この人ハーゲマンです
2022/08/12(金) 17:59:10.79ID:BEh6dSX60
いきなし禿げたんよ。
去年の夏位まではふさふさだった
344デフォルトの名無しさん (ワッチョイ 0101-9Xv3)
垢版 |
2022/08/12(金) 20:16:41.08ID:ijOecH2p0
それはコロナだから治療行けよ。
2022/08/12(金) 21:06:52.17ID:rQBVWxEE0
Dim Eight As Typhoon
Set Eight As Typhoon

Debug.Print Eight.HPa
2022/08/12(金) 21:35:36.13ID:JWVBEjPKr
質問です
エクセルでvba書くとハゲるというのは本当ですか?
それともハゲじゃないとまともなコードにならないということでしょうか?
2022/08/13(土) 00:36:53.33ID:7+qtu9p80
>>345
Set Eight = New Typhoon
2022/08/13(土) 00:54:21.19ID:C3GQNRB30
Print Eight.Name
Mary
2022/08/13(土) 07:49:57.82ID:Q44FuubAd
>>346
ハゲる→外に出られなくなる→VBAしか無い人生に陥る
2022/08/13(土) 18:00:34.01ID:+/onKVXv0
禿が気になるなら頭ツルッツルにするという構想は無いのかね?
2022/08/13(土) 18:44:02.54ID:qT7WXGgOd
Dim Hair As Object
Set Hair = Nothing
2022/08/13(土) 21:29:48.82ID:+/onKVXv0
>>351
座布団100枚
2022/08/13(土) 22:55:44.03ID:ZiFcsOVE0
>>346
こら!良い大人ならスキンヘッドと言いなさい!
2022/08/14(日) 09:47:43.88ID:1U9rY3C10
スキンヘッドが似合う顔ならスキンヘッドにしてるんですよ・・・
355デフォルトの名無しさん (アウアウウー Saa5-oUG4)
垢版 |
2022/08/14(日) 11:14:09.47ID:VI2zLni0a
ezoe職務質問されたってよ
2022/08/14(日) 13:17:19.86ID:RtZKjyzz0
>>355
QZ は逮捕・拘留11日を食らったってよ
2022/08/14(日) 16:16:37.77ID:L75yFRnI0
スキンヘッドは
メガネがポイントだと思う。
閑話休題。

次の話者に期待
358デフォルトの名無しさん (ワッチョイ e274-Jrkb)
垢版 |
2022/08/14(日) 16:36:03.46ID:LT2TaV3B0
皮頭よりはハゲと言われたほうが人権を尊重してるだろ
359デフォルトの名無しさん (ワッチョイ 6eda-O3lh)
垢版 |
2022/08/14(日) 19:46:54.17ID:mUrr83gX0
>>349
→VBAの質問スレに書きこむようになる
360デフォルトの名無しさん (ワッチョイ e274-Jrkb)
垢版 |
2022/08/14(日) 23:12:05.82ID:LT2TaV3B0
きみたちハーゲマンに質問なのですが
VBAの配列でJavascriptのようにpushやpopを使いたいときってどうしてます?
わざわざredim使って要素数を変えるのはそれが頻繁になるときは使いづらいなと思うし。
2022/08/14(日) 23:52:33.60ID:mUrr83gX0
>>360
最初の配列はそのままで添え字を管理
2022/08/15(月) 00:13:18.77ID:WD7exLpg0
ツルピカかつ、不精ヒゲだから女さんなんて絶対に寄り付かない。
2022/08/15(月) 05:37:50.20ID:zxOEKBbO0
>>360
VBA で残念に思う所の一つやね
サイズの上限が決められるならその上限で確保してサイズは別途管理
上限が決められない時はReDimでちまちま管理してる
あとReDimでサイズを0にできないのも地味に辛い
364デフォルトの名無しさん (ワッチョイ e274-Jrkb)
垢版 |
2022/08/15(月) 06:56:28.24ID:OUaqH/oW0
>>361
>>363
レスありがとう、ハーゲマンたち。
じゃあしかたないんですね。
でもVBAでもpush, pop, shift, unshiftが使える配列のようなものをVBAのクラスかなにかを使って再現することは可能だろうか?
365デフォルトの名無しさん (ワッチョイ 6eda-Pw8Y)
垢版 |
2022/08/15(月) 07:26:27.37ID:3rPnXTV50
>>364
可能、だが○○の機能がないから作れないではなく
目的の動作をするように作るんじゃね
質問が本末転倒している
2022/08/15(月) 08:25:48.51ID:7kbqjBHA0
>>364
他の言語でもスタックやキューは長さの決まった配列だよ
そこへオブジェクトを出し入れするときに端のポインタを動かすだけ
長さが足りなくなったら長さ2倍の配列を新しく定義してそっちへオブジェクトを引っ越し、オブジェクトの数が長さの25%を下回るようになったら長さ半分の配列を作り直してそっちへ引っ越し
2022/08/15(月) 08:28:07.85ID:zxOEKBbO0
>>364
pushpush, pop だけだけど実装例
https://kazusa-pg.com/vba-stack/
■ このスレッドは過去ログ倉庫に格納されています