1 名前:デフォルトの名無しさん mailto:sage [2022/10/30(日) 13:43:16.31 ID:6yf2E1Gz0.net] !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
968 名前:デフォルトの名無しさん (ワッチョイ d3ce-Jpma) mailto:sage [2023/01/27(金) 09:50:45.30 ID:Gy/KHy720.net] >>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
969 名前:デフォルトの名無しさん (ラクッペペ MM7f-ZVkQ) mailto:sage [2023/01/27(金) 09:50:46.53 ID:+MAp+PmZM.net] VBAじゃなくてもダメだろ
970 名前:デフォルトの名無しさん (ワッチョイ ff02-qYbV) mailto:sage [2023/01/27(金) 10:21:25.20 ID:JeWwXD830.net] ありがとうございます。 >>954 JSなら。こんな感じ。 var arrs = []; for (var i=0; i<200; i++) { arrs[i] = i; }
971 名前:デフォルトの名無しさん (ワッチョイ ff02-qYbV) mailto:sage [2023/01/27(金) 10:22:55.83 ID:JeWwXD830.net] >>952 ,>>953 ありがとうございました。VBAの配列は癖が強いねえ。
972 名前:デフォルトの名無しさん mailto:sage [2023/01/27(金) 10:49:30.02 ID:PwZKt+DmH.net] 古い言語だからね 仕方ないね
973 名前:デフォルトの名無しさん mailto:sage [2023/01/27(金) 12:06:47.69 ID:HtuDNqBEd.net] >>955 のコードはarrsは配列として宣言するような代入してるけど >>951 は配列の宣言がどこにもないからね 癖というよりも単なる勘違いでしょ
974 名前:デフォルトの名無しさん [2023/01/27(金) 15:35:27.15 ID:nAK+7/AUa.net] 0から200だと201回繰り返すのも注意
975 名前:デフォルトの名無しさん mailto:sage [2023/01/27(金) 16:29:58.00 ID:JeWwXD830.net] >>953 200個の要素数が確定されている場合ですかね。 将来配列の要素数が変わることがわかる場合、 どうなりますか。 うーん。 VBAで配列操作するより、セル関数でデータを加工していった方が早いし、 分かりやすい気がしてきた。
976 名前:デフォルトの名無しさん mailto:sage [2023/01/27(金) 17:27:12.70 ID:HtuDNqBEd.net] >>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」が正しいんじゃない?
977 名前:デフォルトの名無しさん [2023/01/27(金) 17:38:42.59 ID:EY8clDJJd.net] >>960 DimRedimは先に回答した人がいるから >VBAで配列操作するより、セル関数でデータを加工していった方が早いし、 >分かりやすい気がしてきた。 用途にもよるが分かりやすさとしては間違いなくそう VBA分からないやつでもどんな操作をしているか分かるのはでかいし 特異なケースのテストもわりと少ない手間で試せる データの成形入れ替え並び替えは全部関数でやって そうすると関数の参照先シートを変更する度に重くなるから マクロでは関数が入ったブックの呼び出しと 操作するデータを参照先シートにコピペする作業を任せる こんなやり方もあり 一応配列格納のほうがいちいちセルの読み取りしない分速いことは速いが VBAで書き出す手間とエラーチェックの手間と 仕事ならそれを誰かに引き継ぐことを考えると…って感じ
978 名前:デフォルトの名無しさん [2023/01/27(金) 17:55:20.59 ID:JeWwXD830.net] ありがとうございます。 そうですね。「i<=200」が正しいです。 要素数をいちいち定義したり再定義しないといけないのは ちょっと不便ですね。自分でも他の方法ないか調べてみます。 データとして直接見えるというのが、セル関数の良さですね。 VBAの配列だと中のデータ見るのに手間かかる。 参考になりました。みなさんありがとうございました。
979 名前:デフォルトの名無しさん mailto:sage [2023/01/27(金) 19:38:09.77 ID:FOQwFQw10.net] 別に要素数が不確定ならそれなりの組み方があるけどな
980 名前:デフォルトの名無しさん mailto:sage [2023/01/27(金) 20:25:55.36 ID:uIWhZEdtM.net] 相手にしたら負け
981 名前:デフォルトの名無しさん mailto:sage [2023/01/27(金) 21:37:57.80 ID:DxN0bpvv0.net] 勝ち負けの基準がわからない
982 名前:デフォルトの名無しさん mailto:sage [2023/01/28(土) 02:38:02.20 ID:I1dsnIs2M.net] わかった気で勘違いしている馬鹿の間違いや馬鹿さ加減を指摘したら泥沼になるだけだから相手にしたらいかんということだよ 零細企業のアレとか
983 名前:951 mailto:sage [2023/01/28(土) 03:06:54.86 ID:cCrz+GwL0.net] つまり、>>965 を相手にしてはならんということすね。 ありがとう。
984 名前:デフォルトの名無しさん [2023/01/28(土) 06:32:52.50 ID:hxz/by/q0.net] >>963 まぁScripting.DictionaryかCollectionでも使えば? 二次元配列的な使い方をしたいならついでにクラスのお勉強もしておけばいい。 他にもRecordsetを使うという手もある。
985 名前:デフォルトの名無しさん mailto:sage [2023/01/28(土) 07:04:12.75 ID:dWzZ2QT5r.net] >>967 結構、俺のこと好き? 匿名掲示板において個人を認識してもらえるのは書込み冥利に尽きるよ 愛情の反対は無関心だからな
986 名前:デフォルトの名無しさん mailto:sage [2023/01/28(土) 07:56:23.07 ID:mBQ16TA8r.net] 愛される零細おじさんでつ 自分の業務をEXCELでメニュー作ってボタン一つで飛ぶようにしてるんですが 例えばEXCELにみずほ銀行のアイコンを貼り付けて押せばみずほ銀行のEB画面に飛んだり 売掛金回収ならボタン押せば売掛金管理のファイルを読み込んだり 流石に他のソフトを起ち上げたりはVBAでも無理ですよね? おっPythonとかなら出来るんですか?
987 名前:デフォルトの名無しさん mailto:sage [2023/01/28(土) 08:00:10.68 ID:mBQ16TA8r.net] RPAツールを使えば良いのか。。
988 名前:デフォルトの名無しさん [2023/01/28(土) 08:01:55.27 ID:hxz/by/q0.net] まーた RUBY信者の成りすましか・・・
989 名前:デフォルトの名無しさん mailto:sage [2023/01/28(土) 08:04:56.16 ID:mBQ16TA8r.net] ん? RUBYを調べれば良い?
990 名前:デフォルトの名無しさん mailto:sage [2023/01/28(土) 08:20:41.12 ID:KGu/MZwKr.net] shell
991 名前:デフォルトの名無しさん (ワッチョイ a75f-cdcZ) mailto:sage [2023/01/28(土) 10:13:10.69 ID:yr1CASjB0.net] >>971 EB画面は知らんがスクレイピングじゃだめなのか? 売掛金のファイルがcsvならパワークエリで取り込めばいいと思う
992 名前:デフォルトの名無しさん (ワッチョイ 5fda-2biX) mailto:sage [2023/01/28(土) 10:23:25.23 ID:/lutP43W0.net] ハイパーリンクを調べても、それじゃ無い って結論に至って質問してンのか?
993 名前:デフォルトの名無しさん mailto:sage [2023/01/28(土) 10:37:54.23 ID:mBQ16TA8r.net] あ、書き方が悪かったか 愛される零細おじさんでつ 自分の業務をEXCELでメニュー作ってボタン一つで飛ぶようにしてるんですが 例えばEXCELにみずほ銀行のアイコンを貼り付けて押せばみずほ銀行のEB画面に飛んだり 売掛金回収ならボタン押せば売掛金管理のファイルを読み込んだり 以上はハイパーリンクやマクロ記録を使って実現出来てる 売掛金管理ファイルを呼び出した後は、更新ボタンを押すことでパワークエリを使った集計も実現出来てる(更新ボタンを押さたくても更新させる事は出来るがあえて更新前の数値を確認するためにそのようにしてる) 流石に他のソフトを起ち上げたりはVBAでも無理ですよね? おっPythonとかなら出来るんですか?
994 名前:デフォルトの名無しさん mailto:sage [2023/01/28(土) 10:41:20.97 ID:mBQ16TA8r.net] 要するに販売管理のパッケージソフトや会計のパッケージソフトを起動させて全自動を追求したくなったという質問です 例えばEPSONの会計ソフトなら定番の資料は自動的に出力出来るのは知ってるが、今使ってるのは毎回、手作業でボタン押さないと出力出来ないんだよね
995 名前:デフォルトの名無しさん mailto:sage [2023/01/28(土) 10:57:57.78 ID:/lutP43W0.net] ファイルの意味判ってンのか? 基本のキが欠落してるような そして、そんな奴が改悪し続けてるExcel Book 数年後に後任に引き継がれて「なんだよ、これ」に成り果てる そもそも、上司に了解得ているのか?社内のコンプラどうなってんだ おれがコンプラか 社内規定の意味でのコンプラだが
996 名前:デフォルトの名無しさん mailto:sage [2023/01/28(土) 11:00:07.10 ID:mBQ16TA8r.net] >>980 お前は毎回理解力が無いな 既に先人が中途半端な仕組みを作ってるからそこに出力を合わせる事を考えてる このやり方は後任には引き継がない 前任者の手作業を教えるq
997 名前:デフォルトの名無しさん mailto:sage [2023/01/28(土) 11:01:11.80 ID:mBQ16TA8r.net] >>977 この時点で読み違いしてるやん 会社でお荷物だろw
998 名前:デフォルトの名無しさん mailto:sage [2023/01/28(土) 11:45:05.56 ID:/lutP43W0.net] いけね、ついうっかり980踏んでた 無理だから安価指定しないけど、誰かお願いします
999 名前:デフォルトの名無しさん mailto:sage [2023/01/28(土) 11:46:26.88 ID:mBQ16TA8r.net] >>983 分かった
1000 名前:デフォルトの名無しさん mailto:sage [2023/01/28(土) 11:47:07.68 ID:mBQ16TA8r.net] はい建てた Excel VBA 質問スレ Part79 https://mevius.5ch.net/test/read.cgi/tech/1674874007/
1001 名前:デフォルトの名無しさん mailto:sage [2023/01/28(土) 11:58:33.98 ID:NqcfPhRT0.net] >>982 お前は他のソフトを立ち上げることとそのソフトのボタンを押すことの区別もついてない時点で>>977 以上のお荷物だろ 就職してるかどうかは知らんがw
1002 名前:デフォルトの名無しさん mailto:sage [2023/01/28(土) 12:00:37.97 ID:XR4zA44Nr.net] >>986 は? ボタンはEXCEL上で作った奴の話だぞ? ソフトのアイコンクリックじゃないぞ?
1003 名前:デフォルトの名無しさん mailto:sage [2023/01/28(土) 12:01:58.62 ID:XR4zA44Nr.net] あ、ハイパーリンクでソフトの起動まで出来るのか それは失礼しますた
1004 名前:デフォルトの名無しさん mailto:sage [2023/01/28(土) 12:03:14.15 ID:NqcfPhRT0.net] >>987 EPSONの会計ソフトの話だろ > 例えばEPSONの会計ソフトなら定番の資料は自動的に出力出来るのは知ってるが、今使ってるのは毎回、手作業でボタン押さないと出力出来ないんだよね そもそもExcelのボタンの話ならそのボタンに紐づいてるルーチン呼び出せばいいだけだし
1005 名前:デフォルトの名無しさん mailto:sage [2023/01/28(土) 12:03:52.20 ID:XR4zA44Nr.net] となると、そのソフトでダイレクトに帳票印刷のEXEファイルがあるならそれをリンクさせれば良いのか 分かったありがと
1006 名前:デフォルトの名無しさん mailto:sage [2023/01/28(土) 12:05:06.01 ID:XR4zA44Nr.net] >>989 いやEPSONは前職で使ってた奴 でも今のもその実行ファイルを直接起ち上げれば行けるね
1007 名前:デフォルトの名無しさん mailto:sage [2023/01/28(土) 12:06:35.27 ID:NqcfPhRT0.net] >>988 ハイパーリンクでなくても>>975 が書いてるShell関数で任意のソフトを起動できる 起動だけならな https://learn.microsoft.com/ja-jp/office/vba/language/reference/user-interface-help/shell-function 人をお荷物呼ばわりするレベルにないぞ
1008 名前:デフォルトの名無しさん mailto:sage [2023/01/28(土) 12:06:36.37 ID:XR4zA44Nr.net] こりゃEXCELだけでかなりの事は出来るな
1009 名前:デフォルトの名無しさん mailto:sage [2023/01/28(土) 12:07:46.42 ID:NqcfPhRT0.net] >>991 お前の前職なんて知らんがな とにかくそう言うことをやりたかったんだろ としか受け取れないわ
1010 名前:デフォルトの名無しさん mailto:sage [2023/01/28(土) 12:09:07.22 ID:XR4zA44Nr.net] でも一般のアプリケーションてその実行ファイルがどれか公開してる? あ、アプリの動作を監視してるファイルを見れば良いのか?
1011 名前:デフォルトの名無しさん mailto:sage [2023/01/28(土) 12:09:25.98 ID:NqcfPhRT0.net] To: 各位 無能の働き者がワッチョイ無しで次スレ立てちまったんだがどうする? ワッチョイありで立て直す?
1012 名前:デフォルトの名無しさん mailto:sage [2023/01/28(土) 12:10:22.95 ID:XR4zA44Nr.net] >>996 俺のAIが自動的に削除してたわw
1013 名前:デフォルトの名無しさん mailto:sage [2023/01/28(土) 12:10:26.33 ID:NqcfPhRT0.net] >>995 > でも一般のアプリケーションてその実行ファイルがどれか公開してる? そんなことも調べられないならすっぱり諦めるなり人に頼むなりしなよ
1014 名前:デフォルトの名無しさん mailto:sage [2023/01/28(土) 12:12:38.73 ID:UjlIZ1Ov0.net] Excel VBA 質問スレ Part79(ワッチョイあり) mevius.5ch.net/test/read.cgi/tech/1674875532/
1015 名前:デフォルトの名無しさん mailto:sage [2023/01/28(土) 12:13:39.19 ID:XR4zA44Nr.net] >>998 タスクマネージャーの監視で良いのか?
1016 名前:1001 [Over 1000 Thread.net] このスレッドは1000を超えました。 新しいスレッドを立ててください。 life time: 89日 22時間 30分 23秒
1017 名前:過去ログ ★ [[過去ログ]] ■ このスレッドは過去ログ倉庫に格納されています