Excel VBA 質問スレ Part78
レス数が1000を超えています。これ以上書き込みはできません。
!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 全ての行に「Debug.Print TypeName(arrs)」を入れてみると何でダメかわかってくるかもね >>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 ありがとうございます。
>>954
JSなら。こんな感じ。
var arrs = [];
for (var i=0; i<200; i++) {
arrs[i] = i;
} >>952,>>953
ありがとうございました。VBAの配列は癖が強いねえ。 >>955のコードはarrsは配列として宣言するような代入してるけど
>>951は配列の宣言がどこにもないからね
癖というよりも単なる勘違いでしょ >>953
200個の要素数が確定されている場合ですかね。
将来配列の要素数が変わることがわかる場合、
どうなりますか。
うーん。
VBAで配列操作するより、セル関数でデータを加工していった方が早いし、
分かりやすい気がしてきた。 >>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」が正しいんじゃない? >>960
DimRedimは先に回答した人がいるから
>VBAで配列操作するより、セル関数でデータを加工していった方が早いし、
>分かりやすい気がしてきた。
用途にもよるが分かりやすさとしては間違いなくそう
VBA分からないやつでもどんな操作をしているか分かるのはでかいし
特異なケースのテストもわりと少ない手間で試せる
データの成形入れ替え並び替えは全部関数でやって
そうすると関数の参照先シートを変更する度に重くなるから
マクロでは関数が入ったブックの呼び出しと
操作するデータを参照先シートにコピペする作業を任せる
こんなやり方もあり
一応配列格納のほうがいちいちセルの読み取りしない分速いことは速いが
VBAで書き出す手間とエラーチェックの手間と
仕事ならそれを誰かに引き継ぐことを考えると…って感じ ありがとうございます。
そうですね。「i<=200」が正しいです。
要素数をいちいち定義したり再定義しないといけないのは
ちょっと不便ですね。自分でも他の方法ないか調べてみます。
データとして直接見えるというのが、セル関数の良さですね。
VBAの配列だと中のデータ見るのに手間かかる。
参考になりました。みなさんありがとうございました。 別に要素数が不確定ならそれなりの組み方があるけどな わかった気で勘違いしている馬鹿の間違いや馬鹿さ加減を指摘したら泥沼になるだけだから相手にしたらいかんということだよ
零細企業のアレとか つまり、>>965を相手にしてはならんということすね。
ありがとう。 >>963
まぁScripting.DictionaryかCollectionでも使えば?
二次元配列的な使い方をしたいならついでにクラスのお勉強もしておけばいい。
他にもRecordsetを使うという手もある。 >>967
結構、俺のこと好き?
匿名掲示板において個人を認識してもらえるのは書込み冥利に尽きるよ
愛情の反対は無関心だからな 愛される零細おじさんでつ
自分の業務をEXCELでメニュー作ってボタン一つで飛ぶようにしてるんですが
例えばEXCELにみずほ銀行のアイコンを貼り付けて押せばみずほ銀行のEB画面に飛んだり
売掛金回収ならボタン押せば売掛金管理のファイルを読み込んだり
流石に他のソフトを起ち上げたりはVBAでも無理ですよね?
おっPythonとかなら出来るんですか? >>971
EB画面は知らんがスクレイピングじゃだめなのか?
売掛金のファイルがcsvならパワークエリで取り込めばいいと思う ハイパーリンクを調べても、それじゃ無い って結論に至って質問してンのか? あ、書き方が悪かったか
愛される零細おじさんでつ
自分の業務をEXCELでメニュー作ってボタン一つで飛ぶようにしてるんですが
例えばEXCELにみずほ銀行のアイコンを貼り付けて押せばみずほ銀行のEB画面に飛んだり
売掛金回収ならボタン押せば売掛金管理のファイルを読み込んだり
以上はハイパーリンクやマクロ記録を使って実現出来てる
売掛金管理ファイルを呼び出した後は、更新ボタンを押すことでパワークエリを使った集計も実現出来てる(更新ボタンを押さたくても更新させる事は出来るがあえて更新前の数値を確認するためにそのようにしてる)
流石に他のソフトを起ち上げたりはVBAでも無理ですよね?
おっPythonとかなら出来るんですか? 要するに販売管理のパッケージソフトや会計のパッケージソフトを起動させて全自動を追求したくなったという質問です
例えばEPSONの会計ソフトなら定番の資料は自動的に出力出来るのは知ってるが、今使ってるのは毎回、手作業でボタン押さないと出力出来ないんだよね ファイルの意味判ってンのか? 基本のキが欠落してるような
そして、そんな奴が改悪し続けてるExcel Book 数年後に後任に引き継がれて「なんだよ、これ」に成り果てる
そもそも、上司に了解得ているのか?社内のコンプラどうなってんだ おれがコンプラか 社内規定の意味でのコンプラだが >>980
お前は毎回理解力が無いな
既に先人が中途半端な仕組みを作ってるからそこに出力を合わせる事を考えてる
このやり方は後任には引き継がない
前任者の手作業を教えるq >>977
この時点で読み違いしてるやん
会社でお荷物だろw いけね、ついうっかり980踏んでた
無理だから安価指定しないけど、誰かお願いします >>982
お前は他のソフトを立ち上げることとそのソフトのボタンを押すことの区別もついてない時点で>>977以上のお荷物だろ
就職してるかどうかは知らんがw >>986
は?
ボタンはEXCEL上で作った奴の話だぞ?
ソフトのアイコンクリックじゃないぞ? あ、ハイパーリンクでソフトの起動まで出来るのか
それは失礼しますた >>987
EPSONの会計ソフトの話だろ
> 例えばEPSONの会計ソフトなら定番の資料は自動的に出力出来るのは知ってるが、今使ってるのは毎回、手作業でボタン押さないと出力出来ないんだよね
そもそもExcelのボタンの話ならそのボタンに紐づいてるルーチン呼び出せばいいだけだし となると、そのソフトでダイレクトに帳票印刷のEXEファイルがあるならそれをリンクさせれば良いのか
分かったありがと >>989
いやEPSONは前職で使ってた奴
でも今のもその実行ファイルを直接起ち上げれば行けるね >>991
お前の前職なんて知らんがな
とにかくそう言うことをやりたかったんだろ
としか受け取れないわ でも一般のアプリケーションてその実行ファイルがどれか公開してる?
あ、アプリの動作を監視してるファイルを見れば良いのか? To: 各位
無能の働き者がワッチョイ無しで次スレ立てちまったんだがどうする?
ワッチョイありで立て直す? >>995
> でも一般のアプリケーションてその実行ファイルがどれか公開してる?
そんなことも調べられないならすっぱり諦めるなり人に頼むなりしなよ このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 89日 22時間 30分 23秒 5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php レス数が1000を超えています。これ以上書き込みはできません。