[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 02/26 17:47 / Filesize : 275 KB / Number-of Response : 1016
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Excel VBA 質問スレ Part76



1 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 02:23:41.78 ID:2t63WK/jM.net]
!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512
↑2行に減ってるけど、同じ内容を3行に増やして貼り付けること

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

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

※前スレ
Excel VBA 質問スレ Part75
https://mevius.5ch.net/test/read.cgi/tech/1644384272/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured

499 名前:デフォルトの名無しさん mailto:sage [2022/06/14(火) 02:33:52.97 ID:TUO2NKc8M.net]
>>492
今でもコード中に定数をそのまま書くのは別に推奨されてないぞ
せめて別の人がコードを見た時に数字の意味がわかるようにしとかないとバグの元になる

500 名前:デフォルトの名無しさん mailto:sage [2022/06/14(火) 07:10:06.79 ID:r7EVbuk4D.net]
>>492のコードはVBAに限らず可読性悪そう

501 名前:デフォルトの名無しさん [2022/06/14(火) 07:54:24.65 ID:7uTlYRrCa.net]
>>492
変数にいれないで普通の書くのか?
定数なら定数として定義すると思うが

502 名前:デフォルトの名無しさん mailto:sage [2022/06/14(火) 08:25:15.24 ID:bcp0w+/6d.net]
>名著「リーダブルコード」に「説明変数」という言葉が出てくる。

503 名前:デフォルトの名無しさん mailto:sage [2022/06/14(火) 08:35:10.08 ID:T3k1EtCC0.net]
マジックナンバーは避けようぜ
後で見返す時に(この4って何を意味してるんだ…?)ってなると効率落ちる

504 名前:デフォルトの名無しさん mailto:sage [2022/06/14(火) 08:37:28.94 ID:YQpYn/pu0.net]
郵便番号+電話番号ていう文字列があるんだが、郵便番号、電話番号を別々の変数に入れたいので
こうしてみたんだがうまくいかない。
なにか手はある?
いまType1は項目が2個だけど、なるべく一括で入れたいのだが・・・

Type Type1
Zip As String * 7
telnum As String * 11
End Type

Sub Sample()
Dim b As Type1
a = "151123408012341234"
b = a
End Sub

505 名前:デフォルトの名無しさん [2022/06/14(火) 09:04:23.14 ID:06qw5AlY0.net]
aの文字列が固定長なら
Left(a,7)
Right(a,11)
でダメなんか

506 名前:デフォルトの名無しさん mailto:sage [2022/06/14(火) 09:11:18.76 ID:b1sVlKW1M.net]
>>498
C系やVBなら可能だけどVBAではWin32APIを使わないと無理
また、可能だからと言って、複数の変数に一括でデータを入れるような書き方は可読性が下がるので推奨されない

コードをコンパクトに見せたいなら代入部分を以下のようにモジュール化するのがマスト
電話をRightで取り出さないのは、固定電話は桁数が違うから

Sub SetNumbers(ByRef T As Type1, N As String)
  T.Zip = Left(N, 7)
  T.telnum = Mid(N, 8, 11)
End Sub

507 名前:デフォルトの名無しさん mailto:sage [2022/06/14(火) 10:48:30.78 ID:WigeF4Tr0.net]
>>498
若干無理矢理だけどクラス使えば似たような事は出来る
Type1.cls
Private Zip_ As String * 7
Private telnum_ As String * 11
Public Property Let Default(N As String)
Zip_ = Left(N, 7)
telnum = Mid(N, 8)
End Property
Public Property Get Zip()
Zip = Zip_
End Property
Public Property Get telnum()
telnum = telnum_
End Property
デフォルトプロパティの設定がちょっとトリッキー、こことかを参考に
https://thom.hateblo.jp/entry/2015/02/16/003000
あとは
Dim a As New Type1
a = "151123408012341234"
Debug.Print a.Zip
Debug.Print a.telnum



508 名前:デフォルトの名無しさん mailto:sage [2022/06/14(火) 13:04:52.31 ID:IIEda1opd.net]
>>487
何を目的とするかによるけど
速度は重視しないのであれば比較的周知されているBの方がいいのではと思うだけで
書き方なんて色々あるんだから試行錯誤すればいいと思う

509 名前:デフォルトの名無しさん mailto:sage [2022/06/14(火) 13:11:14.27 ID:IIEda1opd.net]
>>498
記憶があいまいだけど
長さの合計値が同じになる変数を持つ構造体を作ってそれをLSetで代入すれば可能だと思う

Type Type1
Zip As String * 7
telnum As String * 11
End Type
Type Type2
Value As String * 18
End Type

Sub Sample()
Dim b As Type1
Dim a As Type1
a.Value = "151123408012341234"
LSet b = a
End Sub

510 名前:デフォルトの名無しさん mailto:sage [2022/06/14(火) 13:57:57.06 ID:yUQgc7GAM.net]
>>503
それで代入だけは可能だけど、電話番号が10桁だと末尾に自動的にスペースが入って11文字に補正される
固定長文字列はTrimもできないから、結局構造体を使う方法はトラブルの予感しかしない

511 名前:デフォルトの名無しさん mailto:sage [2022/06/14(火) 14:36:41.07 ID:IIEda1opd.net]
>>504
与えられたデータだけの回答だからね
与えられた情報以外の事をあーだこーだいう人いるけど
それはその時考えたらよくない?
そもそもそういう事を言い出したら
質問のできるできないはできないって回答になるわけだし

512 名前:デフォルトの名無しさん mailto:sage [2022/06/14(火) 14:46:19.33 ID:QIi9ICtD0.net]
与えられたデータっていうか、前提条件がはっきりしないからなぁ
>郵便番号+電話番号ていう文字列がある
以外は試してみたっていうコードからの推測だしな

まあおれなら合体文字列のセッターと郵便番号、電話番号のゲッターのプロパティ持つクラス作るかなぁ
中身はLeftとMidでいいんじゃね

固定長で最速を目指すならLSetもありかもしれんが

構造体うんぬんより、固定長文字列がトラブルの予感を感じさせるんだよなぁ、いろんなところで

513 名前:デフォルトの名無しさん [2022/06/14(火) 15:27:21.00 ID:jJwMl27ba.net]
固定長文字列って文字数で良いんだっけ?
全角でもおなじ?

514 名前:デフォルトの名無しさん mailto:sage [2022/06/14(火) 17:23:15.55 ID:QIi9ICtD0.net]
>>507
文字数だから全角でも同じはず
というか、文字列はユニコードってことになってるから全角とか半角とかないってことになってるんだよ、いちおう

515 名前:デフォルトの名無しさん mailto:sage [2022/06/14(火) 19:35:25.43 ID:vdrsXIkl0.net]
関数2つ作ればいいのにわざわざ構造体やクラスつくる意味あんのかな
処理速度を気にするのは自力で動くの作れるようになってからだぞ

516 名前:デフォルトの名無しさん mailto:sage [2022/06/14(火) 20:24:08.87 ID:sqy53zZK0.net]
>>487
簡単にいうと、なんでもMidステートメントに置き換えれば速くなるってわけでもない(そういう使い方にはちょっと注意がいる)
あと固定長文字列はいかにも速そうだが実は可変長文字列よりパフォーマンスが落ちることが割とあって、これまた扱いに注意を要する
まずは自分の望む動作をするコードを完成させることに注力した方がいいんでないかな
(速度改善や利便性向上みたいなのはなんていうか、キリのない作業でもあるし)

517 名前:デフォルトの名無しさん mailto:sage [2022/06/15(水) 07:33:40.74 ID:7lj8rf8tD.net]
>>509
クラス1つ作ればいいのにわざわざ関数2つ作る意味あんのかな、
って疑問を持つ奴もいるからどっちもどっち



518 名前:デフォルトの名無しさん [2022/06/15(水) 10:47:02.71 ID:EefWJAwfa.net]
自力でやれるなら好きに組めば良いけど
それもできない初心者だからな

519 名前:デフォルトの名無しさん mailto:sage [2022/06/15(水) 11:15:30.59 ID:WoPQ0lFMd.net]
こういうやり方があるよって回答だけすればあとは質問者がそれを選択するだけでいいのに
他人の回答にケチ付けるやつはなんなんだろうと思う

520 名前:デフォルトの名無しさん mailto:sage [2022/06/15(水) 11:50:46.53 ID:RetoKdFBM.net]
>>513
質問の内容(仕様)が明確じゃない部分を好き勝手に解釈した結果

521 名前:デフォルトの名無しさん mailto:sage [2022/06/15(水) 12:43:33.38 ID:2pwDzYJj0.net]
>>513>>514
単に性格悪いってだけ

522 名前:デフォルトの名無しさん mailto:sage [2022/06/15(水) 13:41:42.48 ID:HRaMYgOd0.net]
ユーザーフォームに毎回違う数のラベルを作った時に、それぞれのラベルでクリックイベントを作りたいのですが
ラベル数が変動するので作れません。
こういう場合、存在するどのラベルをクリックしたかを調べるにはどうすればいいですか?

523 名前:デフォルトの名無しさん mailto:sage [2022/06/15(水) 14:04:25.53 ID:2pwDzYJj0.net]
>>516
昔やろうとしたけど超しんどいよ
vb6にはコントロール配列って機能があってそれを使えばよかったけど、
vbaでなぜかなくなっているので絶望的にめんどくさい
他の方法を考えたほうがいい

どうしてもやるなら「vba コントロール配列」あたりで検索して頑張ってくれ。
https://www.asahi-net.or.jp/~ef2o-inue/vba_o/sub05_100_040.html

524 名前:デフォルトの名無しさん mailto:sage [2022/06/15(水) 14:41:31.92 ID:EFN5k3S5d.net]
>>516
ラベルは最大数で作っといて、必要な分だけVisibleで見せる

525 名前:516 mailto:sage [2022/06/15(水) 17:15:36.58 ID:HRaMYgOd0.net]
>>517
他に方法がなさそうなのでこれでやってみます

>>518
Private Sub Label1_Click() を1000個とか作るのはちょっと汚いので止めておきます

526 名前:デフォルトの名無しさん mailto:sage [2022/06/15(水) 17:23:32.33 ID:C/XRb82A0.net]
ラベルを動的に1000個作るのは汚くないのかよ

527 名前:デフォルトの名無しさん mailto:sage [2022/06/15(水) 17:37:50.64 ID:fn3i9wsI0.net]
まずどうして1000個も必要なのかのほうが突っ込みどころな気がする
VBAってフォーム内でクリックした座標の検出できないのかいな



528 名前:デフォルトの名無しさん mailto:sage [2022/06/15(水) 17:42:47.22 ID:Vg/305+8M.net]
クリックイベントを1000個作るぐらいならクラス化しちゃうかなぁ
どっちにしろ面倒臭いけど

大量にラベル設置した時のリネーム作業を簡単に出来る方法何かない?

529 名前:デフォルトの名無しさん mailto:sage [2022/06/15(水) 17:51:28.07 ID:2pwDzYJj0.net]
いや普通につくるならプルダウンだろ
何かしらで分岐させれば3,4回の選択で済む

530 名前:デフォルトの名無しさん mailto:sage [2022/06/15(水) 18:13:02.83 ID:Vg/305+8M.net]
構内マップを作らされてその上にマインスイーパみたいな升目を作らされ、機器の設置場所を設定出来るようにしたい。場所の指定は分かりづらいから文字だけにするのはNGね。なんて業務を振られる事も稀によくある

531 名前:デフォルトの名無しさん mailto:sage [2022/06/15(水) 18:14:34.90 ID:C/XRb82A0.net]
何をどうしたいのか知らんし、その1000個の元データはどっからどう持ってくるのかしらんけど
Excel VBAだしな
俺ならシートで選択させてフォームのボタンかな

532 名前:デフォルトの名無しさん mailto:sage [2022/06/15(水) 18:28:15.26 ID:C/XRb82A0.net]
>>524
で、それを実現するのがEXCEL VBAでラベル1000個なのか?
いろいろ検討して最終的にそれしかないとなったならまあご愁傷様
そうじゃないならあほとしか思えん

533 名前:デフォルトの名無しさん mailto:sage [2022/06/15(水) 18:47:53.19 ID:Vg/305+8M.net]
それしかないじゃなくてそれしか許されないんだよ
アホかって思いながらやってるよ

534 名前:デフォルトの名無しさん mailto:sage [2022/06/15(水) 18:57:22.93 ID:myHzQmQR0.net]
マス目なら座標取ればいいような気がするが許されないなら仕方がないな

535 名前:デフォルトの名無しさん mailto:sage [2022/06/15(水) 19:32:37.12 ID:JFwHiHWC0.net]
a=郵便番号電話番号
b=Left(a,7)
c=Replace(a, Left(a, 7), "")

536 名前:デフォルトの名無しさん mailto:sage [2022/06/15(水) 19:34:39.87 ID:8qf24aUq0.net]
1000ならまだいける、10000だったら逃げるけどな

537 名前:デフォルトの名無しさん mailto:sage [2022/06/15(水) 19:40:20.96 ID:2pwDzYJj0.net]
>>529
NG



538 名前:デフォルトの名無しさん mailto:sage [2022/06/15(水) 19:56:19.48 ID:y5599rfC0.net]
ワークシートの背景をマップにしてセルクリックでイメージを表示するイベント書けば?

539 名前:デフォルトの名無しさん mailto:sage [2022/06/15(水) 19:57:21.42 ID:TJhxNtAv0.net]
昔ながらの紙の地図帳をイメージすればいいのか
最初のページで全体図をマッピングした概略図を掲げといて
詳細の判るまで拡大した一ページ(※)をマス目で区切って、縦に 1 2 3 横に A B C とか振り分けて
例えば B 4 とかをクリックしたら「設備名」の詳細を表示するとかか?

ユーザーフォームでそれぞれのマス目を呼び出すよりは、インデックスのSheetに全体図
そこをクリックで各Sheet (※)へジャンプとかのが楽そう  上が承認するかどうかだけど
上に承認してもらうようにサンプル作ってプレゼンしてもいいし

540 名前:デフォルトの名無しさん (スッップ Sd1f-UWq1) mailto:sage [2022/06/15(水) 21:04:50 ID:m3jNjkHdd.net]
コントロールフォームの動的配置 & クラスモジュールでイベント起こすに一票
どうせどこかでイベント共通化の処理が入るだろうからスケーラビリティ確保のためにも

541 名前:デフォルトの名無しさん mailto:sage [2022/06/15(水) 21:45:31.66 ID:y5599rfC0.net]
>>534
うぬ、それが一番だと思うけど何故にエクセルなのかと思ってしまう

542 名前:デフォルトの名無しさん mailto:sage [2022/06/16(木) 01:45:48.79 ID:s8B3FZ9N0.net]
1000個のラベルと見せかけて、
実は1個だけラボルが混ざってるんじゃないだろうか。

543 名前:デフォルトの名無しさん [2022/06/16(木) 07:24:34.47 ID:FKA1V1750.net]
テキストファイルを開いて1行ずつ中身を読んでます。
Open ファイル名 For Input As fNo
Line Input fNo, buff
途中まで読んだあと、先頭から読み直したいです。
ファイルを閉じてまた開くのは嫌です!
下のURLを参考にして、
FileSystemObjectを使ってすべてを1変数に読み込み
改行コードで区切って配列化して
先頭から読み直したいときは配列の先頭から読みなおし
という方法を思いつきましたがコード修正が大変なので
もっと楽な方法をご教示いただけたら幸いです。
tps://bokulog.org/vba-read-file/

544 名前:デフォルトの名無しさん mailto:sage [2022/06/16(木) 07:25:26.98 ID:FKA1V1750.net]
sageそこねスミマセン

545 名前:デフォルトの名無しさん mailto:sage [2022/06/16(木) 08:10:36.64 ID:fGEidPk00.net]
>>529
1桁足りないじゃんって思ったら
Optionbaseデフォルト値でやるのが普通なのか?
俺はどうにも馴染めないので1でやってるが

546 名前:デフォルトの名無しさん mailto:sage [2022/06/16(木) 08:12:48.83 ID:H6wZRQj3M.net]
>>537
vbaにseekってなかったっけ?

547 名前:デフォルトの名無しさん mailto:sage [2022/06/16(木) 08:52:14.47 ID:ijJBEomdd.net]
どんなコード書いててそこからどんな手直しするかわからないのに回答のしようがないよね



548 名前:デフォルトの名無しさん [2022/06/16(木) 10:17:53.34 ID:G3W4msQ6a.net]
>>537
ファイルを閉じて開き直すのが祖谷な理由が書かれてませんので
嫌でもやればいいんじゃね

549 名前:デフォルトの名無しさん mailto:sage [2022/06/16(木) 10:35:38.36 ID:OXzWqs7e0.net]
IE終了したけど、今日の時点ではVBAからIE操作できた。いつまで保つか明示されてる?

550 名前:デフォルトの名無しさん [2022/06/16(木) 13:56:39.50 ID:j/xQYS4f0.net]
サポートしないだけで
PC内にIEがある限り
永久に使えるんじゃないか?

551 名前:デフォルトの名無しさん mailto:sage [2022/06/16(木) 14:04:02.85 ID:9IfQq+aNM.net]
そのうち深刻な脆弱性が見つかったらセキュリティソフトでウィルス扱いされるようになって、
IEコンポをロードした瞬間にウィルス警告が出るようになるだろうな

552 名前:デフォルトの名無しさん mailto:sage [2022/06/16(木) 14:55:49.33 ID:TulzdQgt0.net]
WannaCryのときMSはサポート外にパッチ出しちゃった前科あるからなあ
なんだかんだ面倒みそうでなあ

553 名前:デフォルトの名無しさん mailto:sage [2022/06/16(木) 19:55:32.69 ID:g5Jzetu50.net]
>>543
7年くらい大丈夫と見たような気がする

554 名前:デフォルトの名無しさん mailto:sage [2022/06/16(木) 21:22:11.67 ID:wccj32jkd.net]
>>547
何の根拠もないな
危険な脆弱性が明日見つかったらそれで終わりだよ

555 名前:デフォルトの名無しさん mailto:sage [2022/06/16(木) 23:09:10.84 ID:BfseDl080.net]
https://www.ka-net.org/blog/?p=13587
素直にedgeに対応したコンポーネント出してほしいなぁ

webapiからjsonを読み込むときにIEだけはいちいちダウンロード確認のポップアップが出て止まる挙動で苦しんだ記憶があるから嫌い

556 名前:デフォルトの名無しさん mailto:sage [2022/06/17(金) 02:08:51.88 ID:qX3KJPna0.net]
>>540
Seek命令あるけど、あれランダムかバイナリモード用だと思う
が、試したがシーケンシャルファイルでもバイト位置で指定できるな

557 名前:デフォルトの名無しさん mailto:sage [2022/06/17(金) 07:31:22.44 ID:tno+JwDPr.net]
>>547
エッジで互換モードする期間じゃない?



558 名前:デフォルトの名無しさん mailto:sage [2022/06/17(金) 08:55:59.12 ID:LpDNne3Kd.net]
IEで終了したのは「アプリ」の「サポート」だけだぞ
IEオブジェクトはしばらく残すと明言してるから、マクロから使うのはまだ問題ない

けど、猶予期間の今のうちに社内ルールの変更など根回しはちゃんとやっとけよ

559 名前:デフォルトの名無しさん mailto:sage [2022/06/17(金) 13:19:56.68 ID:6WxlvkUPd.net]
IEが非対応のサイトも増えてくるから対策出来るならした方が良いのはわかってる
が現状Selenium Webdriverが最適解のようでいちいちバージョン合わせるためにダウンロードしたり記述が変わったりすげー面倒

MSがどうにかしてくれると淡い期待をしたいが

560 名前:デフォルトの名無しさん mailto:sage [2022/06/18(土) 02:47:00.46 ID:x1pEIMNT0.net]
Edgeに限らず、新しくなって使いづらくなるのホント意味不明。
PC起動するとWindows11にしませんか?って言われるけど、もうお前なんか信用しとらんわ!

561 名前:デフォルトの名無しさん [2022/06/18(土) 06:12:14.25 ID:tcSE7QQr0.net]
まぁしょうがない
良かれ悪かれ何でも時代の変化で変わって行く
VBAは関係ないけどちょっと前にとあるシステムで
IE → EDGE の移行作業行ったよ
開発ツールは確かにIEの方がEDGEより
使いやすかったと思う。慣れだろうけどね。

562 名前:デフォルトの名無しさん mailto:sage [2022/06/18(土) 06:56:56.06 ID:8iz4uO0y0.net]
世の中がセキュリティに舵を取るようになったからね
楽観論じゃなりゆかない時代なんだから仕方がない

563 名前:デフォルトの名無しさん mailto:sage [2022/06/18(土) 08:20:33.50 ID:7fgrQLBR0.net]
セキュリティを理由に広告ゴリ押し
こうはなりたくないね

564 名前:デフォルトの名無しさん (ワントンキン MM8a-ctFn) mailto:sage [2022/06/18(土) 10:08:00 ID:SSs68PlgM.net]
もうマイクロソフトの為に仕事するのやめませんか?

565 名前:デフォルトの名無しさん (アウアウウー Sa47-iAjv) [2022/06/18(土) 10:08:32 ID:Os2AgP5Ia.net]
ieで取れなかった個人情報を集めてるからな

566 名前:デフォルトの名無しさん [2022/06/18(土) 10:59:15.44 ID:0BdDrqNN0.net]
ExcelもIEも何年も使ってないわ
kneetじゃねーよ

567 名前:デフォルトの名無しさん mailto:sage [2022/06/18(土) 11:55:08.82 ID:+2kbSQo1M.net]
VBAもそろそろかな



568 名前:デフォルトの名無しさん mailto:sage [2022/06/18(土) 13:40:01.62 ID:T0WefD6fd.net]
そう言われ続けて20年たった

569 名前:デフォルトの名無しさん mailto:sage [2022/06/18(土) 16:09:32.02 ID:JcC1S0zs0.net]
VBA無くなればこのスレも下火になるかもな。
パワークエリスレが活気出る

570 名前:デフォルトの名無しさん mailto:sage [2022/06/18(土) 16:29:16.53 ID:Es40ajdn0.net]
PowerQueryは万能じゃない
VBAと比較するもんじゃない

571 名前:デフォルトの名無しさん mailto:sage [2022/06/18(土) 18:07:43.74 ID:lnn1Xxq/M.net]
PowerShellは万能だぞ
ExcelのワークシートもWEBブラウザも操作できる

572 名前:デフォルトの名無しさん mailto:sage [2022/06/18(土) 18:14:09.38 ID:59smDk8ed.net]
デフォのPS 5.1はクソだけどな
BOM付きUTF-8を要求したり権限厳しかったり

573 名前:デフォルトの名無しさん mailto:sage [2022/06/19(日) 01:44:47.25 ID:7uc9nhCj0.net]
万能かもしれんがVBSみたいな手軽さが無いのがな…

574 名前:デフォルトの名無しさん [2022/06/19(日) 10:44:47.27 ID:uZGRAEGZp.net]
Power shellは
.Net Freamworkが入ってなければただのShellだもんな
なら素直にVSの類いれとけばいい

575 名前:デフォルトの名無しさん mailto:sage [2022/06/19(日) 21:06:19.28 ID:+DYD1D5ZM.net]
Powershell 7は.NETと関係ない汎用のコマンドラインシェル
macOSやLinux向けの製品すら存在する

576 名前:デフォルトの名無しさん mailto:sage [2022/06/19(日) 21:33:18.64 ID:nfQGh1M+d.net]
追加でWebからインストールしなきゃいけないPowerShell(6以降)に存在価値はない
それが許されるんならあえてPowerShellなんて使わずとももっと優れた選択肢がいくらでもある

577 名前:デフォルトの名無しさん mailto:sage [2022/06/19(日) 22:00:01.16 ID:c6U60qvsM.net]
Win11でもオプションなの?
うちいまだにWin10だからわからん



578 名前:デフォルトの名無しさん mailto:sage [2022/06/20(月) 09:16:41.32 ID:ZiXH0O+ed.net]
win11でも入ってるのは5だけ
6以降はサポート期限がLTSでもリリースから2年しかないから、
仮にWindowsにプリインストールすると2年ごとにWindowsの更新で強制的にメジャーバージョンが上がって既存資産がぶっ壊れるリスクが生じる
だからどうしてもユーザーの自己責任で塩漬けにできる選択肢が必要で、Windowsの一部として扱うことが不可能なんだよ

579 名前:デフォルトの名無しさん mailto:sage [2022/06/21(火) 14:59:24.30 ID:nrTPRY1Pr.net]
質問です

580 名前:デフォルトの名無しさん mailto:sage [2022/06/21(火) 15:16:20.71 ID:nrTPRY1Pr.net]
質問です
ある動画で「連想配列とユーザー定義型を組み合わせると便利」ということで色々勉強していたのですが、ユーザー定義型ってpublic宣言しても別モジュールで呼び出せないですよね?
てことは別モジュールにプロシージャがあって、それを引数設定して呼び出してもエラーになりました
そこでクラスモジュールを使っても同じような事ができると聞き、クラスモジュール内に3つ型を宣言した変数を作ったのですが、それを配列に入れようとすると「配列に入れることができません」というエラーがでます
具体的には以下のとおりです
Dim c() as class1
Set c = New class1 ←ここでエラーがおきます
この記述を
Dim c() as New class1
とすればエラーは起きないのですが、別モジュールの引数に
sub test(c as New class1)と記述はできないので困っています
なにかいい方法はないでしょうか?

581 名前:デフォルトの名無しさん mailto:sage [2022/06/21(火) 16:23:50.93 ID:NaTv3t2Wr.net]
すみません
私の勘違いでした
普通にユーザー定義型でできました

582 名前:デフォルトの名無しさん mailto:sage [2022/06/22(水) 00:02:57.35 ID:fcQ3wVRo0.net]
ネタ投下
「貴様は一体何を仰ってるんだ」Excelマクロの納品時、担当者に言われたひと言にTwitterざわつく - 「良さを完全に殺しに来てる」の声も
https://news.mynavi.jp/article/20220620-wadai6/

583 名前:デフォルトの名無しさん mailto:sage [2022/06/22(水) 01:16:32.40 ID:/230SSBOd.net]
>>576
くだらなすぎる
読むのは時間の無駄

584 名前:デフォルトの名無しさん mailto:sage [2022/06/22(水) 02:03:36.70 ID:/pBOMLc50.net]
うさんくせー
セミナー屋ほど胡散臭いのはないわ、
やっぱ5ちゃんねるが一番!

585 名前:デフォルトの名無しさん mailto:sage [2022/06/22(水) 07:25:36.31 ID:dKKatMvdD.net]
嘘松藁人形
手作業大好きおじさんが一人いましたって面白くもない話

586 名前:デフォルトの名無しさん mailto:sage [2022/06/22(水) 07:29:12.94 ID:bFCzOkRx0.net]
話の内容はともかく客に説教とかアホすぎる

587 名前:デフォルトの名無しさん mailto:sage [2022/06/22(水) 09:39:47.61 ID:fcQ3wVRo0.net]
「ミスが起こるような仕組み」でなくて、
まるっきりブラックボックスでもなく、
人が過程を辿れるようなの、作りたいな・・・
とは思う。



588 名前:デフォルトの名無しさん mailto:sage [2022/06/22(水) 11:11:38.88 ID:SHGr4jOjd.net]
完全にネタ、作り話だろこれ

そもそもVBAごときでミスが起きないシステムなんて作るの不可能だし
マクロはたくさんある工程の一つに過ぎないんだから、業務全体で見ればミスが起きる余地なんてほかにいくらでもあるだろうに

589 名前:デフォルトの名無しさん mailto:sage [2022/06/22(水) 11:58:03.94 ID:qNhhYbIzd.net]
話題にするだけばからしいでしょ
こんなの言ったもん勝ちだしね

590 名前:デフォルトの名無しさん mailto:sage [2022/06/22(水) 12:09:22.34 ID:PZ27NODvM.net]
ブラックボックスでミスが見つけられない
を独自解釈しただけだろ

591 名前:デフォルトの名無しさん mailto:sage [2022/06/22(水) 13:02:01.70 ID:acQQyPov0.net]
>>581
どうせDebug.Printするんだろうからデバッグモード付きで納品すればいいんじゃね

592 名前:デフォルトの名無しさん mailto:sage [2022/06/22(水) 13:45:53.56 ID:5jQGKRYma.net]
マクロの作成頼まれたけど要求内容があまりにも怪しかったので、
マクロと一緒に「入力に対する出力が合っているか」と「そもそもの入力が誤っていないか」を簡易的に(電卓などで)求められる計算方法を渡した
そしたら約3ヶ月に一回ぐらいの割合でそもそもの入力すべきデータを誤っていたことが判明した
ってことはあったな
後で調べたら、こういうのは「封筒裏の計算」っていう手法らしいけど

593 名前:デフォルトの名無しさん mailto:sage [2022/06/22(水) 13:46:18.61 ID:qNhhYbIzd.net]
>>581
保存期間なり世代管理してログ出力すればいいでしょ

594 名前:デフォルトの名無しさん mailto:sage [2022/06/22(水) 15:52:29.00 ID:acQQyPov0.net]
>>586
祝儀袋の封筒に書かれた金額と入っている金が違うやんってことか
なるほど日本人はうまい例えを作るもんだと思ったら全然違ってた

595 名前:デフォルトの名無しさん mailto:sage [2022/06/22(水) 17:31:38.14 ID:/pBOMLc50.net]
わろた

596 名前:デフォルトの名無しさん mailto:sage [2022/06/22(水) 19:32:15.50 ID:XefayqmG0.net]
Excel2013のVBAで
Debug.Print (1 = 1) * 1
てやると-1になるけど、
セルで
=(1=1)*1
て入れると1になる。
これって不具合?

597 名前:デフォルトの名無しさん [2022/06/22(水) 19:47:11.74 ID:5Bb+Exnq0.net]
ワークシート上の(1=1)、つまりTRUE値は「1」だけど
VBAでのTrue値は「-1」だから合ってる



598 名前:デフォルトの名無しさん mailto:sage [2022/06/22(水) 21:45:57.03 ID:Io6qCa48M.net]
>>576
毎日新聞の戯言

お前暇やろ

599 名前:デフォルトの名無しさん [2022/06/23(木) 00:03:21.37 ID:RpD62pBf0.net]
VBAは好き
どんな職場で働けばいいの?
正社員じゃなくていいです。






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<275KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef