X



Excel VBA 質問スレ Part78
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん (ワッチョイ 5f2e-juJ7)
垢版 |
2022/10/30(日) 13:43:16.31ID:6yf2E1Gz0
!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512
↑同じ内容を3行貼り付けること

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

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

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

-
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
0953デフォルトの名無しさん (ワッチョイ d3ce-Jpma)
垢版 |
2023/01/27(金) 09:50:45.30ID:Gy/KHy720
>>951
Variant型は便利だけどVBAでは取り扱いが初心者には難しい方だと思う
昨日も変数の型のことで荒れてたけど、できるだけ適切な型を指定した方がバグになりにくい

そのまま動くようにするなら
Sub test()
  Dim arrs() As Variant
  ReDim arrs(200)
  Dim i As Long
  For i = 0 To 200
    arrs(i) = i
  Next i
End Sub

俺が推奨したい書き方は
Const arr_max = 200
Sub test()
  Dim arrs(arr_max) As Long
  Dim i As Long
  For i = 0 To arr_max
    arrs(i) = i
  Next i
End Sub
0959デフォルトの名無しさん (アウアウウー Saa7-sGmE)
垢版 |
2023/01/27(金) 15:35:27.15ID:nAK+7/AUa
0から200だと201回繰り返すのも注意
0960デフォルトの名無しさん (ワッチョイ ff02-qYbV)
垢版 |
2023/01/27(金) 16:29:58.00ID:JeWwXD830
>>953
200個の要素数が確定されている場合ですかね。
将来配列の要素数が変わることがわかる場合、
どうなりますか。

うーん。
VBAで配列操作するより、セル関数でデータを加工していった方が早いし、
分かりやすい気がしてきた。
0961デフォルトの名無しさん (スッップ Sd1f-88l+)
垢版 |
2023/01/27(金) 17:27:12.70ID:HtuDNqBEd
>>960
VB(VBA)の場合は配列の再定義するためのRedimというのが用意されている
Dim a(0 to 200) as long
Redim Preserve a(0 to 1000)
とすることで0から200までの値を保証して0から1000までの配列に拡張ができる
まあ正解なんて1つじゃないんだから自分にしっくりくる作り方でいいと思うけどね

あと細かいようだけど>>955の「for (var i=0; i<200; i++) {」は
VBの質問に合わせるなら「i<=200」が正しいんじゃない?
0962デフォルトの名無しさん (スプッッ Sd1f-aTb4)
垢版 |
2023/01/27(金) 17:38:42.59ID:EY8clDJJd
>>960
DimRedimは先に回答した人がいるから

>VBAで配列操作するより、セル関数でデータを加工していった方が早いし、
>分かりやすい気がしてきた。

用途にもよるが分かりやすさとしては間違いなくそう
VBA分からないやつでもどんな操作をしているか分かるのはでかいし
特異なケースのテストもわりと少ない手間で試せる

データの成形入れ替え並び替えは全部関数でやって
そうすると関数の参照先シートを変更する度に重くなるから
マクロでは関数が入ったブックの呼び出しと
操作するデータを参照先シートにコピペする作業を任せる

こんなやり方もあり
一応配列格納のほうがいちいちセルの読み取りしない分速いことは速いが
VBAで書き出す手間とエラーチェックの手間と
仕事ならそれを誰かに引き継ぐことを考えると…って感じ
0963デフォルトの名無しさん (ワッチョイ ff02-qYbV)
垢版 |
2023/01/27(金) 17:55:20.59ID:JeWwXD830
ありがとうございます。
そうですね。「i<=200」が正しいです。

要素数をいちいち定義したり再定義しないといけないのは
ちょっと不便ですね。自分でも他の方法ないか調べてみます。



データとして直接見えるというのが、セル関数の良さですね。
VBAの配列だと中のデータ見るのに手間かかる。


参考になりました。みなさんありがとうございました。
0969デフォルトの名無しさん (ワッチョイ 3619-GWjr)
垢版 |
2023/01/28(土) 06:32:52.50ID:hxz/by/q0
>>963
まぁScripting.DictionaryかCollectionでも使えば?
二次元配列的な使い方をしたいならついでにクラスのお勉強もしておけばいい。
他にもRecordsetを使うという手もある。
0971デフォルトの名無しさん (オッペケ Sr3b-O9ZV)
垢版 |
2023/01/28(土) 07:56:23.07ID:mBQ16TA8r
愛される零細おじさんでつ

自分の業務をEXCELでメニュー作ってボタン一つで飛ぶようにしてるんですが
例えばEXCELにみずほ銀行のアイコンを貼り付けて押せばみずほ銀行のEB画面に飛んだり
売掛金回収ならボタン押せば売掛金管理のファイルを読み込んだり
流石に他のソフトを起ち上げたりはVBAでも無理ですよね?
おっPythonとかなら出来るんですか?
0973デフォルトの名無しさん (ワッチョイ 3619-GWjr)
垢版 |
2023/01/28(土) 08:01:55.27ID:hxz/by/q0
まーた
RUBY信者の成りすましか・・・
0978デフォルトの名無しさん (オッペケ Sr3b-O9ZV)
垢版 |
2023/01/28(土) 10:37:54.23ID:mBQ16TA8r
あ、書き方が悪かったか

愛される零細おじさんでつ

自分の業務をEXCELでメニュー作ってボタン一つで飛ぶようにしてるんですが
例えばEXCELにみずほ銀行のアイコンを貼り付けて押せばみずほ銀行のEB画面に飛んだり
売掛金回収ならボタン押せば売掛金管理のファイルを読み込んだり

以上はハイパーリンクやマクロ記録を使って実現出来てる
売掛金管理ファイルを呼び出した後は、更新ボタンを押すことでパワークエリを使った集計も実現出来てる(更新ボタンを押さたくても更新させる事は出来るがあえて更新前の数値を確認するためにそのようにしてる)

流石に他のソフトを起ち上げたりはVBAでも無理ですよね?
おっPythonとかなら出来るんですか?
0979デフォルトの名無しさん (オッペケ Sr3b-O9ZV)
垢版 |
2023/01/28(土) 10:41:20.97ID:mBQ16TA8r
要するに販売管理のパッケージソフトや会計のパッケージソフトを起動させて全自動を追求したくなったという質問です

例えばEPSONの会計ソフトなら定番の資料は自動的に出力出来るのは知ってるが、今使ってるのは毎回、手作業でボタン押さないと出力出来ないんだよね
0980デフォルトの名無しさん (ワッチョイ 5fda-2biX)
垢版 |
2023/01/28(土) 10:57:57.78ID:/lutP43W0
ファイルの意味判ってンのか? 基本のキが欠落してるような
そして、そんな奴が改悪し続けてるExcel Book 数年後に後任に引き継がれて「なんだよ、これ」に成り果てる
そもそも、上司に了解得ているのか?社内のコンプラどうなってんだ おれがコンプラか 社内規定の意味でのコンプラだが
0989デフォルトの名無しさん (ワッチョイ 0b01-hj3w)
垢版 |
2023/01/28(土) 12:03:14.15ID:NqcfPhRT0
>>987
EPSONの会計ソフトの話だろ
> 例えばEPSONの会計ソフトなら定番の資料は自動的に出力出来るのは知ってるが、今使ってるのは毎回、手作業でボタン押さないと出力出来ないんだよね
そもそもExcelのボタンの話ならそのボタンに紐づいてるルーチン呼び出せばいいだけだし
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 89日 22時間 30分 23秒
10021002
垢版 |
Over 1000Thread
5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────

会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。

▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/

▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。

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