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
413 名前:デフォルトの名無しさん mailto:sage [2022/06/08(水) 18:40:44.71 ID:mwMQbcQT0.net] ググれよ
414 名前:デフォルトの名無しさん (ワッチョイ c1da-/lmG) mailto:sage [2022/06/08(水) 19:08:37 ID:/v6Td7Qv0.net] >>396 面白いんですけど何で商品の話ですか
415 名前:デフォルトの名無しさん (アウアウウー Sa11-fRoS) [2022/06/08(水) 19:25:08 ID:2MMAQscUa.net] 32bitのexcelと64bitのexcelでintの範囲違うんだろうか (もちろんOSの話ではない)
416 名前:デフォルトの名無しさん mailto:sage [2022/06/08(水) 19:34:40.24 ID:38a4SNrC0.net] >i = i + 1 'コピー先の行を一つ下にずらす。 ってあるから貼り付け先が integer 超えたらだめじゃねって思った
417 名前:デフォルトの名無しさん mailto:sage [2022/06/08(水) 19:43:22.59 ID:60yE+Uw7d.net] Dim 残りの髪の毛 As byte Dim 抜け毛 As LongLong あとよろしく ↓
418 名前:デフォルトの名無しさん mailto:sage [2022/06/08(水) 19:45:48.83 ID:C2b/Gc96H.net] >>411 なるほど!どうりで最後まで貼られてなかったんだ(´;ω;`)早速ありがとうございます。 ちょっと自分でやり直してみます!!m(__)m
419 名前:デフォルトの名無しさん mailto:sage [2022/06/08(水) 19:46:53.74 ID:C2b/Gc96H.net] >>412 流れぶった切ってゴメンなさい でも考えすぎてハゲそうな勢いでした。。頭悪くてイヤになります。。
420 名前:デフォルトの名無しさん mailto:sage [2022/06/08(水) 20:12:39.32 ID:C2b/Gc96H.net] ダメだ、integerをlongに替えてやってみたけど やはり半分以下しか貼られませんでした。 もう少し頑張ってみます
421 名前:デフォルトの名無しさん mailto:sage [2022/06/08(水) 20:25:07.29 ID:C2b/Gc96H.net] 自己解決しました。1つのエリアの塊が飛び飛びになってたので 同じエリアのブック内で上書きされてたみたいです。 でも皆さんのおかげで解決出来ました。ありがとうございました! またハゲそうになったらこちらに伺いたいです。。懲りずによろしくお願いいたしますm(__)m
422 名前:デフォルトの名無しさん mailto:sage [2022/06/08(水) 22:42:41.32 ID:3hgKnM3d0.net] また毛
423 名前:デフォルトの名無しさん mailto:sage [2022/06/09(木) 00:00:12.33 ID:XIUzPNKLM.net] ※よろず~ニュース 波平さん銅像に髪の毛戻る 引き抜かれてから5日の〝スピード植毛〟 https://yorozoonews.jp/article/14640597 杉田 康人 https://public.potaufeu.asahi.com/dd83-p/picture/26885823/46ac4b106abdd0873e85fa50ea6f8cbb_640px.jpg 東京都世田谷区の桜新町商店街にある人気アニメ「サザエさん」一家の銅像から引き抜かれていた髪の毛が8日、復活した。同商店街によると3日朝、波平さんのトレードマークとなっている貴重な1本毛が抜かれているのが見つかった。ワカメちゃんの頭頂部から跳ね出した〝アホ毛〟3本もなくなっていたが、商店街の依頼を受けた業者が8日午後までに修復した。 サザエさん一家は、桜新町に住んでいる設定。作者の長谷川町子氏の美術館・記念館おひざ元の桜新町商店街は、作品ゆかりのストリートとして知られる。銅像は2012年(平成24)に建立したが、商店街の担当者によると波平さんはこれまでに6度、毛を引き抜かれる憂き目に遭っている。ワカメちゃんの髪が抜かれるのは初だという。 銅像の髪の毛は、針金にビニールをコーティングしたもの。(略) ※省略していますので全文はソース元を参照して下さい。
424 名前:デフォルトの名無しさん (ブーイモ MM39-M86+) [2022/06/09(木) 04:46:01 ID:CxlByAWLM.net] このハゲ / ̄ ̄ ̄ ̄ ̄ ̄\ / \ / ヽ l:::::::::. | |:::::::::: (●) (●) | |::::::::::::::::: \___/ | ヽ:::::::::::::::::::. \/ ノ
425 名前:デフォルトの名無しさん [2022/06/09(木) 19:07:14.80 ID:cD/wL2EQ0.net] いや お前らハゲ散らかし過ぎだろ
426 名前:デフォルトの名無しさん [2022/06/09(木) 21:45:50.80 ID:WYCVR9XP0.net] >>420 そんなつもりは毛頭ございません
427 名前:デフォルトの名無しさん mailto:sage [2022/06/09(木) 22:38:52.28 ID:pASwhhxq0.net] パソコンばっかやっているから禿るんだわ いい加減気がつけよ
428 名前:デフォルトの名無しさん mailto:sage [2022/06/09(木) 22:48:34.88 ID:/RbqsnKRd.net] 禿げてる奴がパソコンばっかやるようになるんだわ 人生って残酷だよな
429 名前:デフォルトの名無しさん [2022/06/10(金) 07:26:23.24 ID:1o37Jrb90.net] もうしわ毛ありません
430 名前:デフォルトの名無しさん mailto:sage [2022/06/10(金) 07:28:26.18 ID:rEbuXRdM0.net] 真面目に話すと、パソコン作業は頭使うしストレスの負荷が高いから禿やすいとは聞いた。
431 名前:デフォルトの名無しさん (ワッチョイ 1abd-+jz7) mailto:sage [2022/06/10(金) 08:55:47 ID:kCKMlptW0.net] 人間関係の煩わしさでストレスの負荷が多い場合が多いから、パソコン作業はハゲにくいらしいよ
432 名前:デフォルトの名無しさん mailto:sage [2022/06/10(金) 12:04:33.87 ID:F7hdpVFcd.net] パソコンからは強い電磁波が出てるから、パソコン作業は禿げやすいとは聞いた。
433 名前:デフォルトの名無しさん [2022/06/10(金) 12:51:05.36 ID:zP3+9Ywoa.net] ハゲ対策の情報もいっぱい持ってるから予防できる
434 名前:デフォルトの名無しさん mailto:sage [2022/06/10(金) 13:28:56.18 ID:dcEjX7ueM.net] 男性ホルモンの優位でハゲるから(*ノω・*)テヘ
435 名前:デフォルトの名無しさん mailto:sage [2022/06/10(金) 13:52:15.99 ID:6StqYoESd.net] パソコンの前でやる事と言ったらそれしか無いからな
436 名前:デフォルトの名無しさん mailto:sage [2022/06/10(金) 18:44:17.05 ID:rEbuXRdM0.net] 男性ホルモンが盛んなのですから禿る
437 名前:デフォルトの名無しさん [2022/06/10(金) 22:17:29.28 ID:e4qm213id.net] このスレで質問するレベルの馬鹿が作ったExcel表のせいで葛飾区の保育所は大騒ぎ
438 名前:デフォルトの名無しさん mailto:sage [2022/06/10(金) 22:31:48.31 ID:lQlywAWy0.net] エクセル2016で複数のbook開いてると単体で開いてるときよりもずっとVBAの動作が遅くなるんだけど 解決策知ってる人いる?
439 名前:デフォルトの名無しさん mailto:sage [2022/06/10(金) 22:34:53.56 ID:/aCQrqDp0.net] 複数開かなきゃいいんじゃね
440 名前:デフォルトの名無しさん mailto:sage [2022/06/10(金) 23:02:11.31 ID:yoZYMWv5H.net] >>432 (´;ω;`)
441 名前:デフォルトの名無しさん mailto:sage [2022/06/10(金) 23:11:39.01 ID:rEbuXRdM0.net] >>432 え?詳しく ググっても詳細出てこない。 禿そうだわ
442 名前:デフォルトの名無しさん (ワッチョイ 86da-fOeb) mailto:sage [2022/06/10(金) 23:14:29 ID:rEbuXRdM0.net] あ、葛飾区のニュース出て来た 表計算ソフト式に誤りとか最低だろう。 テストしなかったのかな?
443 名前:デフォルトの名無しさん (ブーイモ MM71-Rebr) mailto:sage [2022/06/10(金) 23:17:41 ID:Vb4kLAL3M.net] >>436 検索初心者か? 普通にぐぐって一発で出るんだが https://xtech.nikkei.com/atcl/nxt/news/18/13050/
444 名前:デフォルトの名無しさん (ワッチョイ 5d93-QMxd) mailto:sage [2022/06/10(金) 23:24:30 ID:bPqrOIr80.net] どーせsubtotalじゃなくsumで小計出してたせいで合計が2重計上されたとかじゃねーの
445 名前:デフォルトの名無しさん mailto:sage [2022/06/11(土) 00:03:58.02 ID:peHZyvXnd.net] Dick A as strong Dick B as strong If A > B then A = Tachi B = Uke End if A => B
446 名前:デフォルトの名無しさん mailto:sage [2022/06/11(土) 00:50:08.66 ID:c8NiZZbH0.net] >>440 ツッコミどころ満載やな
447 名前:デフォルトの名無しさん [2022/06/11(土) 09:42:09.94 ID:k8BssVI/0.net] A もB も 強そうな型だなオイ
448 名前:デフォルトの名無しさん mailto:sage [2022/06/11(土) 11:19:57.24 ID:zJAfd1A70.net] ストロングチューハイはやばい酔い方する
449 名前:デフォルトの名無しさん mailto:sage [2022/06/11(土) 12:41:06.40 ID:CM4vZAaMM.net] A = Bだとどうなるの?
450 名前:デフォルトの名無しさん mailto:sage [2022/06/11(土) 14:14:10.27 ID:ZxVNHiJ20.net] なんで竿がデカい方が攻めなんだよ はっ倒すぞ
451 名前:デフォルトの名無しさん mailto:sage [2022/06/11(土) 14:27:57.92 ID:8O7zsVZWM.net] どこにも竿の大きさなんて書いてない クラス定義まで見ない限り、何を比較してるのか、このコードだけではわからない さては思い込みでコードを書いてバグを発生させちゃうタイプだな?
452 名前:デフォルトの名無しさん mailto:sage [2022/06/11(土) 15:03:55.80 ID:zJAfd1A70.net] 分かってないだけでしょ
453 名前:デフォルトの名無しさん mailto:sage [2022/06/11(土) 16:08:12.40 ID:ZxVNHiJ20.net] If Dick(竿)A>DickB Then A=タチって書いてあんじゃんか
454 名前:デフォルトの名無しさん mailto:sage [2022/06/11(土) 16:33:22.04 ID:k7wiIunZM.net] Strongは精力じゃね? 大きさならSizeとかLengthとか
455 名前:デフォルトの名無しさん mailto:sage [2022/06/11(土) 18:37:34.42 ID:4UGI/r2E0.net] 禿は精力が強い
456 名前:デフォルトの名無しさん mailto:sage [2022/06/11(土) 19:01:23.35 ID:qcSYfg6i0.net] B = Not(A) じゃね
457 名前:デフォルトの名無しさん mailto:sage [2022/06/11(土) 20:12:32.64 ID:VlCDkB2oM.net] DickクラスのSizeプロパティは読み取り専用 Electプロパティは代入可能 Cumメソッドは1日5回以上使うと例外発生
458 名前:デフォルトの名無しさん mailto:sage [2022/06/11(土) 21:54:22.38 ID:Ejve8RvI0.net] ShapeとTextBoxをマクロで作ったのを 別のBookのSheetにコピペした時のフォントは マクロ側とコピペ側だとどちらに依存しますか?
459 名前:デフォルトの名無しさん mailto:sage [2022/06/11(土) 22:02:30.68 ID:TK5b+qDd0.net] 聞く前にやったほうが早いだろw
460 名前:デフォルトの名無しさん mailto:sage [2022/06/11(土) 22:04:32.17 ID:XvS1eUBu0.net] 質問失礼いたします。 ユーザー定義型に以下のようなツリー型になる感じの物をPublicで宣言してて クラスモジュールにユーザー定義型の変数を作っているのですが、 プロパティの作り方で悩んでいます。 以下標準モジュール内 Public Type MinorItemType ' 小項目 minorItemName as String ' 小項目名 minorItemID as Long End Type Public Type MajorItemType ' 大項目 majorItemName as String ' 大項目名 majorItemID as Long minorItem() as MinorItemType End Type 以下クラスモジュール内 Dim majorItem_() as MajorItemType この場合、以下のようにMajorItemType型のプロパティを作成して丸ごと渡すのか、 Public Property Get majorItem(ByVal num as Long) as MajorItemType majorItem = majorItem_(num) End Property それともユーザー定義型の中の変数へのプロパティを1つずつ作成するのか、 どちらが正しいのでしょうか? ちなみに作成するプロパティは原則Getのみで、 変数に値を取得するのは、クラス内に作成したSubプロシージャで シートへ値を取りに行かせる具合です。
461 名前:デフォルトの名無しさん (ワッチョイ ff42-kGh4) mailto:sage [2022/06/11(土) 22:38:15 ID:kVPUfUKj0.net] 正解はない
462 名前:デフォルトの名無しさん mailto:sage [2022/06/11(土) 23:57:34.93 ID:XvS1eUBu0.net] >>456 ありがとうございます。前者の方法で行ってみます。
463 名前:デフォルトの名無しさん mailto:sage [2022/06/12(日) 00:52:49.29 ID:SFQsQSvz0.net] 戦車の砲塔で行ってみてやりにくかったら変えればいいんじゃね
464 名前:デフォルトの名無しさん mailto:sage [2022/06/12(日) 01:40:55.69 ID:QoN69QoAd.net] 芋芋亀してみます!
465 名前:デフォルトの名無しさん mailto:sage [2022/06/12(日) 18:48:33.62 ID:cJxXuNHT0.net] 文字列の一部分に0付き右詰めの数字を入れたいのだが・・・・ a = "000000000" b = a Mid(a, 2, 5) = 123 Debug.Print "変更前" & b Debug.Print "変更後" & a 結果 変更前000000000 変更後012300000 これだと左詰めなんだが、こうなるべきじゃないの? 変更後0123 000 midにRightをかぶせてみたんだが、 Right(Mid(a, 2, 5), 3) = 123 オブジェクトが必要て言われる。 どうすればいいの?
466 名前:デフォルトの名無しさん [2022/06/12(日) 19:03:38.39 ID:M5mGZ9TuM.net] format(123, "000000000")じゃ駄目なの?
467 名前:デフォルトの名無しさん mailto:sage [2022/06/12(日) 19:09:33.96 ID:DaJUN4Jhd.net] Mid(a, 2, 5) = 123 の右辺を数字のままにしてるからおかしくなると思うので CStr(123)みたいに文字列にしてからセットすればいいんじゃ
468 名前:デフォルトの名無しさん mailto:sage [2022/06/12(日) 19:30:47.38 ID:ImMFuzyy0.net] むしろ Mid(a, 2, 5) = 123 これでなんでaが012300000になるの?どう評価されてるの?
469 名前:デフォルトの名無しさん mailto:sage [2022/06/12(日) 19:37:46.32 ID:ImMFuzyy0.net] ??? Sub foo() a = 0 Mid(a, 1) = "aaa" '通る Right(0, 2) = "bbb" 'エラー Debug.Print a End Sub
470 名前:デフォルトの名無しさん mailto:sage [2022/06/12(日) 20:39:25.03 ID:uZt7xySi0.net] 自分ならright("000000000" & "123"の右側を取る
471 名前:デフォルトの名無しさん mailto:sage [2022/06/12(日) 21:12:13.58 ID:DaJUN4Jhd.net] ああ右詰で数字をいれたいのか 自分のレスは無視して そもそも桁数も統一してないからそこから見直せ
472 名前:デフォルトの名無しさん mailto:sage [2022/06/12(日) 21:35:58.65 ID:cJxXuNHT0.net] Sub sample() '01 PIC X(1) '01 PIC 9(5) '01 PIC X(3) a = "A00000ABC": Debug.Print "元データ :" & a Mid(a, 2, 5) = Format(123, "00000"): Debug.Print "パターン1:" & a a = "A00000ABC" Mid(a, 2, 4) = Format(123, "0000"): Debug.Print "パターン2:" & a a = "A00000ABC" Mid(a, 2, 5) = Format(123, "000"): Debug.Print "パターン3:" & a a = "A00000ABC" Mid(a, 2, 5) = 123: Debug.Print "パターン4:" & a a = "A00000ABC" c = "00000" RSet c = 123 Mid(a, 2, 5) = c: Debug.Print "パターン5:" & a End Sub 元データ :A00000ABC パターン1:A00123ABC パターン2:A01230ABC パターン3:A12300ABC パターン4:A12300ABC パターン5:A 123ABC パターン1が正解なんだけど、なぜパターン4は3文字分だけ書き換えるんだろう? パターン4がOKならパターン5でもいけるような気がするが、パターン5は空白を埋める。 RSet Mid(a, 2, 5) = 123 はエラーになる
473 名前:デフォルトの名無しさん mailto:sage [2022/06/12(日) 21:46:31.55 ID:ImMFuzyy0.net] それ以前に Mid(a, 2, 5) = Format(123, "00000") でエラーが出ないのがおかしいだるお
474 名前:デフォルトの名無しさん mailto:sage [2022/06/12(日) 21:52:55.42 ID:SFQsQSvz0.net] ちなみに -123 のときどうする?
475 名前:デフォルトの名無しさん [2022/06/12(日) 22:19:45.52 ID:+/mRZvLHd.net] ID:ImMFuzyy0 馬鹿は黙っていればいいのに そうやって馬鹿を曝け出していると頭の皮膚も曝け出されるぞ
476 名前:デフォルトの名無しさん mailto:sage [2022/06/12(日) 22:37:23.13 ID:aOGWTw070.net] midステートメントは今ある文字列に対して別の文字列を被せるだけの動作だよ
477 名前:デフォルトの名無しさん mailto:sage [2022/06/12(日) 23:03:38.74 ID:b6RzJ+XoM.net] 別の文字列を被せるのは仕様外動作だと思うけどな
478 名前:デフォルトの名無しさん mailto:sage [2022/06/12(日) 23:07:02.46 ID:ImMFuzyy0.net] 何一つその動作がのってねぇ https://docs.microsoft.com/ja-jp/office/vba/language/reference/user-interface-help/mid-function
479 名前:デフォルトの名無しさん mailto:sage [2022/06/12(日) 23:10:22.37 ID:UzvPms3IM.net] 引数以外の手段で関数に値を代入(?)するという前代
480 名前:「聞の珍動作 何が起きるか分かったもんじゃない [] [ここ壊れてます]
481 名前:デフォルトの名無しさん mailto:sage [2022/06/12(日) 23:13:02.41 ID:cJxXuNHT0.net] つまり Mid(a, 2, 5) = 123 は aの2文字目から5文字分ところに、"123"を書き込むんだけど、 3文字しかないから、4-5文字目は何もしないてことだよね。 でも代入の原則論から言えば、足りない部分はスペースで埋めるんじゃないのか? RSetは足りない部分はスペースで埋めてる。 まあ、それが仕様だて言えばそうだけど、 深く考えて作られてないのかな。 もし、RSetも3文字しか代入しないのなら、RIGHTやFORMATを使わなくても0埋めができるし、 単純な代入だから性能もいいはず。
482 名前:デフォルトの名無しさん mailto:sage [2022/06/12(日) 23:16:04.57 ID:cJxXuNHT0.net] >>473 それはmid関数。 midステートメントとは別物だよwww。 https://docs.microsoft.com/ja-jp/office/vba/language/reference/user-interface-help/mid-statement オレもさっき知ったんだがwww
483 名前:デフォルトの名無しさん mailto:sage [2022/06/12(日) 23:29:45.68 ID:nFfW5LM6M.net] そんなものがあったのか!? けど代入元の型は文字列になってるけど数値を代入していいのか?
484 名前:デフォルトの名無しさん mailto:sage [2022/06/12(日) 23:33:25.21 ID:ImMFuzyy0.net] >>476 ありがとう!!! 気になって眠れないとこだった。俺の頭がおかしくなったのかと思ったわw ステートメント、一度目を通しておいたほうがいいね https://excel-ubara.com/EXCEL/EXCEL908.html >>477 vbaで何をいっとるんじゃい
485 名前:デフォルトの名無しさん mailto:sage [2022/06/12(日) 23:54:08.09 ID:cJxXuNHT0.net] >>477 どの言語もできるような気もするが。 出来ない言語なんかあったけ? 化石のような言語のCOBOLでもできる。 COBOLだと9型の変数があって、VBA風にかくと Dim a as 99999 a = 123 でaを00123にしてくれる。 a=RIGHT("00000" & 123,5)なんてやってるのをみて驚いたわ。
486 名前:デフォルトの名無しさん mailto:sage [2022/06/12(日) 23:56:26.34 ID:as/ibVfq0.net] ちなみに、MidステートメントはLetステートメントと違ってヒープ領域の再確保を行わないようなので めちゃくちゃいっぱい文字列を結合したり置き換えたりする文字列操作をMidステートメントで高速化できたりはする 色々注意しなきゃならんしめんどいけど
487 名前:デフォルトの名無しさん mailto:sage [2022/06/13(月) 14:10:09.78 ID:cuhQaR4kM.net] mid("00000",5-len(a),len(a))=a なんてやってるの?
488 名前:デフォルトの名無しさん mailto:sage [2022/06/13(月) 15:41:58.25 ID:e6QxpplAd.net] 文字列の一部分に0付き右詰めの数字を入れたいのだが・・・・ これがやりたい事なんだから A.MIDステートメントを使うなら右辺の値を5桁固定にする Mid(a,2,5) = Format(123,"00000") B.代入するの文字列を代入先の左側+5桁固定の値+代入先の右側にする a = Mid(a,1,1) & Format(123,"00000") & Mid(a,7,Len(a)) あたりに落ち着くのでは 自分は誤解されないためにもBのようなコードがいいと思うけど
489 名前:デフォルトの名無しさん mailto:sage [2022/06/13(月) 18:10:47.94 ID:S+tXl/uoD.net] 自分なら right("00000" & 123, 5) って書く
490 名前:デフォルトの名無しさん mailto:sage [2022/06/13(月) 18:28:06.25 ID:CiY+fWgN0.net] セルの書式設定に 0000# って書けばいいのに
491 名前:デフォルトの名無しさん mailto:sage [2022/06/13(月) 19:38:44.31 ID:5YQd33j2d.net] いやどうせVBAでやるならNumberFormatLocalでやろうよ
492 名前:デフォルトの名無しさん mailto:sage [2022/06/13(月) 20:02:21.45 ID:3bSnFxDm0.net] 要件にもよるが正規表現とFormat()で。
493 名前:デフォルトの名無しさん mailto:sage [2022/06/13(月) 21:14:24.62 ID:c4yOIzj40.net] >>482 https://www.moug.net/tech/exvba/0140045.html MIDステートメントのほうが速いらしい。 でもオレが試したら逆だったけど・・・・
494 名前:デフォルトの名無しさん mailto:sage [2022/06/13(月) 22:37:41.37 ID:pISmU68J0.net] みんなのコードカッコいいわ やっぱりコードはカッコ良くなきゃ舐められるわな
495 名前:デフォルトの名無しさん mailto:sage [2022/06/14(火) 01:08:48.71 ID:GVYlqPTN0.net] >>488 他に見るやつがいないなら動きゃいいとか思ってしまう
496 名前:デフォルトの名無しさん mailto:sage [2022/06/14(火) 01:18:48.91 ID:MKKHJJii0.net] てか若者とお年を召された方のコードの書き方が明らかに違うのだが、古臭い目新しいとかあるのかな?
497 名前:デフォルトの名無しさん mailto:sage [2022/06/14(火) 02:02:23.05 ID:GVYlqPTN0.net] 今は可読性悪いのは駄目ってなってるけど逆に改行や変数名の長さすらケチってた時代もあった んで言語が進化するにつれて書き方も変わっていった 今でも昔の方法で書けるっちゃ書けるけどそれが古臭いってことだと思う
498 名前:デフォルトの名無しさん mailto:sage [2022/06/14(火) 02:07:02.10 ID:MKKHJJii0.net] お年を召された方(60~70代)のコード見たら、やたら変数ばかり多かった印象が。 変数使わなくても普通に書けばいいじゃんて部分まで変数に入れていた。
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] 固定長文字列って文字数で良いんだっけ? 全角でもおなじ?