1 名前:デフォルトの名無しさん mailto:sage [2020/12/13(日) 00:22:23.67 ID:Fd224klc0.net] !extend:checked:vvvvv:1000:512 ↑同じ内容を2行貼り付ける ExcelのVBAに関する質問スレです コード書き込みや作成依頼もOK ※前スレ Excel VBA 質問スレ Part68 https://mevius.5ch.net/test/read.cgi/tech/1598756127/ VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
652 名前:デフォルトの名無しさん mailto:sage [2021/02/14(日) 00:53:19.53 ID:D24G58JB0.net] >>648 自発的には動かないよ 今まではVBAでしかユーザー定義関数は作れなかったけどVBA使わなくても作れるって言うだけ ただマクロを有効にする必要がないから実務としてはそれなりに意味はある
653 名前:デフォルトの名無しさん mailto:sage [2021/02/14(日) 00:53:54.05 ID:D24G58JB0.net] >>649 まあ俺もつい1年ぐらい前に知ったんだけどw
654 名前:デフォルトの名無しさん mailto:sage [2021/02/14(日) 05:33:27.25 ID:8cTA8eHd0.net] それよりかパイプライン演算子を実装して欲しい ラムダ関数はその足掛かりな気もするけど
655 名前:デフォルトの名無しさん mailto:sage [2021/02/14(日) 08:25:32.74 ID:0LuW/JvdM.net] セルの書式を調べる関数はよ
656 名前:デフォルトの名無しさん mailto:sage [2021/02/14(日) 09:01:53.08 ID:D24G58JB0.net] >>653 Cell("format", a1) じゃ駄目なの? https://dekiru.net/article/4431/
657 名前:デフォルトの名無しさん mailto:sage [2021/02/14(日) 09:44:10.83 ID:9bE5PNm50.net] EXCELって意外と古いの使ってたりするから受け渡しがどうかな
658 名前:デフォルトの名無しさん mailto:sage [2021/02/14(日) 09:46:12.37 ID:HYvJ8gAi0.net] >>652 一部がダメ文字の文字コード
659 名前:デフォルトの名無しさん mailto:sage [2021/02/14(日) 10:33:56.69 ID:ccxL17vjM.net] >>654 ああごめん 表示形式以外の書式ね 色とかフォントとか罫線とか
660 名前:デフォルトの名無しさん mailto:sage [2021/02/14(日) 10:46:19.10 ID:IPhvN32f0.net] もしかして >>653 は データの「表示形式」だけでなくて フォントや横位置/縦位置、塗りつぶし、罫線なんかの戻り値が欲しいのかしら?
661 名前:デフォルトの名無しさん mailto:sage [2021/02/14(日) 10:47:17.03 ID:IPhvN32f0.net] ありゃ。本人からの返事の方が早かった
662 名前:デフォルトの名無しさん mailto:sage [2021/02/14(日) 11:28:53.22 ID:D24G58JB0.net] >>657 4.0マクロ関数でどうぞ https://blog.goo.ne.jp/koyaman2/e/58506c9b0f18f1577aa694ab4af30edf
663 名前:デフォルトの名無しさん mailto:sage [2021/02/14(日) 16:36:27.43 ID:W30Sj/2D0.net] VBAはSelectのCaseで、False,Empty,Nullあたりが同一判定されて、個々に行えないのがクソ
664 名前:デフォルトの名無しさん mailto:sage [2021/02/14(日) 17:23:19.56 ID:D24G58JB0.net] >>661 VarTypeも知らない僕はアホです っていうカミングアウトか?
665 名前:デフォルトの名無しさん mailto:sage [2021/02/14(日) 19:08:55.75 ID:hT3ZVIIc0.net] ねこ
666 名前:デフォルトの名無しさん mailto:sage [2021/02/15(月) 11:39:26.92 ID:S0ZRmbKV0.net] DIR関数を利用して以下のりようなロジックを見たのですが、 foldercheck = (Dir(wrkpath, vbDirectory) <> "") ()の中のロジックはどのような技法なんでしょうか if Dir(wrkpath, vbDirectory) <> " then
667 名前:664 [2021/02/15(月) 13:15:47.99 ID:S0ZRmbKV0.net] https://docs.microsoft.com/ja-jp/office/vba/language/reference/user-interface-help/comparison-operators Dim MyResult, Var1, Var2 MyResult = (45 < 35) ' Returns False. MyResult = (45 = 45) ' Returns True. 自己解決しました。上記と同じなのですね。お騒がせしました。
668 名前:デフォルトの名無しさん [2021/02/15(月) 19:45:33.20 ID:olEKN+utr.net] フォルダへの書き込みのアクセス権をチェックするようなサンプルないですかね。 イメージとしてはフォームのフォルダ選択ボタンを押して選んだフォルダが書き込みできなければ選んだ時点でそういうメッセージを出したい。このあとアウトプットフォイルを書き込む際にエラーが出る前に
669 名前:デフォルトの名無しさん mailto:sage [2021/02/15(月) 20:10:33.97 ID:xaJaofAeH.net] >>666 まじめにやるならGetFileSecurityとGetAclInformationを使う もっと簡単にやりたかったら、ダミーのファイルを1つ作ってみてOn Errorでエラーになったかどうか判定
670 名前:デフォルトの名無しさん mailto:sage [2021/02/15(月) 20:15:42.96 ID:nKU68rXI0.net] FSOのGetFileでフォルダーを取得して Attlibutesプロパティ見ればいいんでないかな
671 名前:デフォルトの名無しさん mailto:sage [2021/02/15(月) 20:16:42.83 ID:nKU68rXI0.net] >>668 訂正 GetFile → GetFolder だった
672 名前:デフォルトの名無しさん [2021/02/15(月) 20:30:32.32 ID:btvLdCUB0.net] >>668 いいわけないだろw そもそもフォルダのR属性は他の用途に使われている
673 名前:デフォルトの名無しさん mailto:sage [2021/02/15(月) 22:00:51.83 ID:iJ9piVTy0.net] 普通にicacls呼べばいいじゃん
674 名前:デフォルトの名無しさん mailto:sage [2021/02/15(月) 22:59:53.76 ID:R4sT9O4+0.net] >>662 いや、それだと0と1がIntegerとしか返ってこないし、 TrueとFalseもBooleanとしか返ってこないから判定できないだろ。バカかお前?
675 名前:デフォルトの名無しさん mailto:sage [2021/02/15(月) 23:48:13.25 ID:yTkZToOt0.net] isnullはあったよなたしか
676 名前:デフォルトの名無しさん mailto:sage [2021/02/16(火) 02:55:26.52 ID:nbeJO0KhM.net] CSV形式で保存する前に、Serial値の表示形式をyyyy/m/dにマクロから変更して 保存してからその後開くと、"1/1/2020"とか意味分からんStr型になっちゃうんだけど、 誰か分かるひといる? csvを取り込むソフトがどうしてもこの表示形式に変更しないと、うまく取り込めない謎仕様なんだ。 ちなみに、いったん保存してから開いてやってもダメだった。 (もちろん、手作業で開いて表示形式変更したらバグらないんだけど・・・) rngObj.NumberFormatLocal = "yyyy/m/d"
677 名前:デフォルトの名無しさん mailto:sage [2021/02/16(火) 07:43:45.82 ID:+oOyZ54g0.net] >>672 型を判定してから値を判定すりゃいいだけだろ 応用力ないのか?
678 名前:デフォルトの名無しさん mailto:sage [2021/02/16(火) 10:30:54.61 ID:OCcCJKsW0.net] 整数の1と小数の1.0だと値(バイナリ)が違うって知ったら狂いそうだな
679 名前:デフォルトの名無しさん mailto:sage [2021/02/16(火) 11:04:29.70 ID:+oOyZ54g0.net] >>674 いま手元にExcelないから確認できないけど rngObj.NumberFormat = "yyyy/m/d" か book.SaveAs …, Local:=True に、してみたらどうかな
680 名前:デフォルトの名無しさん mailto:sage [2021/02/16(火) 11:41:24.25 ID:XpWP4Lg+0.net] 2021/2/15 6:43 みたいに、時間が入ったセルの、 日付の部分 だけ変えたいんですがやり方がわからないです セルの日付(2021/2/15)を変数で定義して、新たな日付(2021/2/16)の変数も定義して replace(セルの位置,セルの日付,新たな日付) で入れ替えようとすると型が合わないって出てしまうのですが どうすればいいでしょうか?
681 名前:デフォルトの名無しさん mailto:sage [2021/02/16(火) 11:56:30.35 ID:S5ddSisTa.net] >>678 もしかして変数で定義してる型がDateだったり?
682 名前:デフォルトの名無しさん mailto:sage [2021/02/16(火) 11:58:31.61 ID:XpWP4Lg+0.net] >>679 dateとstring両方試しました
683 名前:デフォルトの名無しさん mailto:sage [2021/02/16(火) 12:13:25.96 ID:9n1pp/97M.net] CStr(Format(a,″yyyy/m/d“))
684 名前:デフォルトの名無しさん mailto:sage [2021/02/16(火) 12:24:02.20 ID:XpWP4Lg+0.net] すいません自己解決しました 変数の定義がおなしかったみたいです
685 名前:デフォルトの名無しさん mailto:sage [2021/02/16(火) 13:04:12.03 ID:nbeJO0KhM.net] >>677 いけましたサンクス!!!
686 名前:666 [2021/02/16(火) 19:15:33.72 ID:+pX1epGPr.net] 遅くなりましたが、結局Dummyファイルの書き込みにしました。アドバイス頂いた方ありがとうございました。
687 名前:デフォルトの名無しさん mailto:sage [2021/02/16(火) 21:00:08.21 ID:PQjj23xSa.net] スミマセン、セルの特殊な機能だと思うのですが、 セルにポインタを合わせると、セルの外側右下に小さな▼が出現、 ▼を押すとセルの下に小さなウィンドウが展開し、羅列された文字や数字を選択できる。 上記機能の名称とは何なのか、 どこでイジれるのか、作成できるのか等わからず困ってしまいました。 機能が生きているセルもありましたため、 新規で作成せずともその機能をコピーしようともしましたが方法わからず。 お詳しい方いらっしゃいましたら お力添え願いたいです。 失礼します。
688 名前:デフォルトの名無しさん mailto:sage [2021/02/16(火) 21:24:43.99 ID:kmFmEkS70.net] VBAとは関係なく 「セルの入力規則」から「リスト」を選択してあとは適宜 詳細は上記キーワードで検索して
689 名前:デフォルトの名無しさん mailto:sage [2021/02/16(火) 22:46:03.00 ID:g3oiZXVYr.net] 教えていただけると助かります。 VBAでIEからExcelに文章を写したいです。 アクティブなIEからカーソルで範囲指定して、その内容を写すことは可能なのでしょうか? 例えば、ヤフーで気になる記事の内容だけをコピペといった感じです。 気になるものだけなので、検索を入れ込む必要はないです。 IEとYahoo起動まではできるのですが、その先が分かりません。 よろしくお願いいたします。
690 名前:デフォルトの名無しさん mailto:sage [2021/02/16(火) 23:02:29.70 ID:LtHH0x/40.net] それ手動でコピペしたほうが早いんじゃね
691 名前:デフォルトの名無しさん mailto:sage [2021/02/16(火) 23:41:10.89 ID:5LT5VcGn0.net] 気になる記事の条件は? それを自分で判断するなら>>688 が正解だと思うが
692 名前:デフォルトの名無しさん mailto:sage [2021/02/17(水) 09:01:14.53 ID:tQXaEzsv0.net] >>687 ちったぁググれ https://konowaza.com/excel/copy_paste_macro.html
693 名前:デフォルトの名無しさん mailto:sage [2021/02/17(水) 10:16:38.01 ID:vOoN+LpT0.net] >>690 優しすぎる
694 名前:デフォルトの名無しさん mailto:sage [2021/02/17(水) 12:53:19.33 ID:3Z4/s25m0.net] >>686 ありがとうございますm(_ _)m トライします。
695 名前:デフォルトの名無しさん mailto:sage [2021/02/17(水) 12:57:54.00 ID:quEf8nPTr.net] いえいえ
696 名前:デフォルトの名無しさん mailto:sage [2021/02/17(水) 12:59:55.94 ID:Mp3MtPnAH.net] クリップボードを監視して、新しいデータがコピーされるたびに保存してくれるアプリとか使えばいいんじゃない? いちいちウィンドウを切り替えたりペーストしなくていいやつあるだろ
697 名前:デフォルトの名無しさん mailto:sage [2021/02/17(水) 15:46:44.57 ID:i293dZUhd.net] >>686 機能が生きているセルを上記指南で解析し、 貼り付けで解決しました! 助かりました。 ありがとうございました!
698 名前:デフォルトの名無しさん mailto:sage [2021/02/17(水) 22:01:12.58 ID:YnE2/fOB0.net] 最終列までコピーをしたいんですがエラーを繰り返しなかなか実現できません… 例えばA3セルがデータの始まりでA7セルが最終列の場合、以下の文になるかと思いますRange(“A3:A7”).copy ただ、半年に一度最終列が一列追加になるので、メンテナンスしなくていいように上の文のA7の部分が最終列になるようにしたいです この場合何かいい方法はあるでしょうか
699 名前:デフォルトの名無しさん mailto:sage [2021/02/17(水) 22:41:15.13 ID:FtApzB1S0.net] 行じゃなくて列?
700 名前:デフォルトの名無しさん mailto:sage [2021/02/17(水) 22:42:03.66 ID:tZ0yQ1Z/0.net] オーソドックスなのはこれだけど、物凄い珍回答を聞いてみたいわ Range("A3:A" & Cells(Rows.Count, 1).End(xlUp).Row).Copy
701 名前:デフォルトの名無しさん mailto:sage [2021/02/17(水) 22:45:44.66 ID:LXOFF6tt0.net] >>696 last_row = Sheet1.UsedRange.Row + Sheet1.UsedRange.Rows.Count - 1 last_col = Sheet1.UsedRange.Column + Sheet1.UsedRange.Columns.Count - 1 Debug.Print "A3:" & Sheet1.Cells(last_row, last_col).Address(RowAbsolute:=False, ColumnAbsolute:=False) こんなん?
702 名前:デフォルトの名無しさん mailto:sage [2021/02/17(水) 22:46:54.85 ID:bJ7UNxEFr.net] >>690 ありがとうございます❗ 探してたものに出会えました。 ググってはみたんですが、このサイトには巡り会えなかったので、本当に助かります。 やってみたら、思う結果になりました。 ありがとうございました。
703 名前:デフォルトの名無しさん mailto:sage [2021/02/17(水) 22:47:30.28 ID:YnE2/fOB0.net] 行じゃなく列です 最終列が半年に一回追加になるのです…
704 名前:デフォルトの名無しさん mailto:696 [2021/02/17(水) 22:50:45.05 ID:YnE2/fOB0.net] >>697 ごめんなさい、最終列の話だったのでA3セルからD3セルをコピーする場合、以下になるんでした Range(“A3:D3).copy 今はD3が最終列ですが、半年後にはD3が最終列になるイメージです
705 名前:696 mailto:sage [2021/02/17(水) 22:51:42.12 ID:YnE2/fOB0.net] 何度も間違えてすみません… 今はD3が最終列ですが半年後にはE3が最終列になるの間違いでした
706 名前:デフォルトの名無しさん mailto:sage [2021/02/17(水) 22:55:52.03 ID:X7VrF3DN0.net] 最終列取得の仕方調べないの?
707 名前:デフォルトの名無しさん mailto:sage [2021/02/17(水) 23:06:07.99 ID:FtApzB1S0.net] Range("A3").CurrentRegion.Copy
708 名前:デフォルトの名無しさん mailto:sage [2021/02/17(水) 23:08:53.17 ID:ooyd3US+0.net] ColLst = Sheet1.Сells(3,Columns.Count).End(xIToLeft).Column Range(Sheet1.Cells(3,1),Sheet1.Сells(3,ColLst)) みたいにケツのColumnIndexを可変化させりゃええ 指定範囲より右側にコメントが入るのであれば別の方法を考える必要があるけど
709 名前:デフォルトの名無しさん mailto:sage [2021/02/17(水) 23:09:11.52 ID:LXOFF6tt0.net] CurrentRegionは使えそうで使わない
710 名前:デフォルトの名無しさん mailto:sage [2021/02/17(水) 23:16:43.14 ID:FtApzB1S0.net] UsedRangeだって使うの怖ない? どっかにドットあるだけども持ってかれる
711 名前:デフォルトの名無しさん mailto:sage [2021/02/17(水) 23:18:02.78 ID:tZ0yQ1Z/0.net] これってやり方は何通りかあるけど、 どの状況でも使える完璧なのが無いよな 一見よさげなUsedRange.Find法とかも、 検索と置換の状態が変わっちゃうし
712 名前:デフォルトの名無しさん mailto:sage [2021/02/17(水) 23:21:06.27 ID:LXOFF6tt0.net] ちゃんとやりたい場合列のヘッダの名前の有無を確認とか意味解析するしかないよ
713 名前:デフォルトの名無しさん mailto:sage [2021/02/18(木) 00:18:06.29 ID:ZQty99yr0.net] vbaしかつかえないうんちなんだけど、ダイアログに変数名入れたら、その名前を反映させた定型コード作ってくれるような支援ソフトないの? たとえば、Dim var: var= xとかFor i=LBound(arr) to UBound(arr)とか。いちいちめんどい。 cliborはつかってる。スレチだったらすまそ。
714 名前:デフォルトの名無しさん mailto:sage [2021/02/18(木) 02:16:18.22 ID:QcGF+jUk0.net] それこそ自分で作れよ 自分だけにに都合よく自動化したいならそれしかないだろ
715 名前:デフォルトの名無しさん mailto:sage [2021/02/18(木) 08:21:36.53 ID:sd++046d0.net] >>711 そういうの別言語だと見たことあるけど VBAでは諦めた方がいいんじゃないかなぁ https://mobile.twitter.com/johnsundell/status/1221758718188060673 こういう奴でしょ? (deleted an unsolicited ad)
716 名前:696 mailto:sage [2021/02/18(木) 08:30:28.40 ID:0xKDo7Uv0.net] 最終列の取得をしてコピーしたいと申した者です 具体的には2シート目以降のC8セルから最終列までコピペしたくこのような文を書いてました Maxcol = Worksheets(1).Range(“C8”).End(XlToRight).Column For i = 2 To Worksheets.Count Worksheets(i) = Range(Cells(8,3), Cells(8, Maxcol)).Copy Worksheet(1).Cells(Maxrow,1).PasteSpecial Paste:=xlPasteValues Maxrow = Maxrow + 1 Next i 上には書いていませんがMaxRowで最終行していて、1シート目の最終行にペーストするイメージです このとき以下の箇所でエラーになりました Worksheets(i) = Range(Cells(8,3), Cells(8, Maxcol)).Copy
717 名前:デフォルトの名無しさん mailto:sage [2021/02/18(木) 08:31:50.99 ID:cssKdxraM.net] >>713 やっぱVbaだと厳しいか、、、別言語だとこんなのあるんだな!ありがとう。
718 名前:696 mailto:sage [2021/02/18(木) 08:45:37.53 ID:0xKDo7Uv0.net] 解決しました… Rangeの中にCellsを入れる際はCellsの方にもワークシート名を記載してあげなければいけなかったんですね… お騒がせしました
719 名前:デフォルトの名無しさん [2021/02/18(木) 10:27:10.11 ID:4sNPnSsIM.net] 4点指定でrange作れればいいのにね
720 名前:デフォルトの名無しさん mailto:sage [2021/02/18(木) 13:38:16.10 ID:EVRbmhyV0.net] >>717 まあ、 Sheet.Cells(開始行, 開始列).Resize(行数, 列数) もしくは Sheet.Cells(開始行, 開始列).Resize(終了行 - 開始行 + 1, 終了列 - 開始列 + 1) ってやるだけだし
721 名前:デフォルトの名無しさん mailto:sage [2021/02/18(木) 17:41:06.06 ID:Khd0zmwWM.net] >>714 これで動くのか それならまあいいけども
722 名前:デフォルトの名無しさん mailto:sage [2021/02/18(木) 20:47:31.34 ID:Sdz2Rpjn0.net] コンパイルしたときに「ユーザー定義型は使用できません」といったようなエラーが出るのですが、 エラー箇所が選択されず特定できません。 ググってみたのですが「関数を一個ずつ切り貼りしながらコンパイル」的な記事しかなく、 結構大きなプロジェクトファイルになってしまっていて現実的ではありません。 原因って何が考えられますでしょうか。
723 名前:デフォルトの名無しさん mailto:sage [2021/02/18(木) 21:08:20.83 ID:QcGF+jUk0.net] 情報が少なすぎるだろ で、ユーザー定義型を使ったの?
724 名前:デフォルトの名無しさん mailto:sage [2021/02/18(木) 21:48:45.33 ID:sd++046d0.net] >>720 VBAでは珍しいかも知れないけど VBSではよくある話 実行前コンパイルの概念がないからね 別に1関数単位で抜かなくても 纏めてごっそり抜いてみて エラーが発生しなくなったら 残った部分には原因がなくて 抜いた部分に原因があるんで まずそうやって切り分ける 抜いた部分から半分くらい戻してやって またエラーが起きないか確認するのを 繰り返して行く内に 原因の可能性がある範囲はどんどん狭まるんで そうやって確認して行く
725 名前:デフォルトの名無しさん mailto:sage [2021/02/18(木) 21:52:25.45 ID:sd++046d0.net] 原因として考えられるのは ない型を指定した場合なので 型宣言の書き間違えとかかな
726 名前:デフォルトの名無しさん mailto:sage [2021/02/18(木) 21:59:48.04 ID:Sdz2Rpjn0.net] >>721 使ってます。 また、クラスモジュールやライブラリも沢山使ってます。 以前なら間違っている名前の箇所が選択されるので、直ぐに原因が特定できたのですが・・・ >>722 今、出来る範囲でモジュールを解放・インポートを繰り返して検証して見たのですが、 フォームモジュールのいくつかが原因の様で、これらを抜くとコンパイル(実行前コンパイル)が成功します。 ただ、その原因と思われるモジュール内の全てのコードを削除しても同じエラー発生します。 意味が分かりません・・・
727 名前:デフォルトの名無しさん [2021/02/18(木) 22:36:52.79 ID:Xk2lzcuAM.net] フォーム内のエラーはフォーム呼び出しコードが選択されるから、F8の手押し連打で進めて行けばエラー箇所で止まるんじゃね
728 名前:デフォルトの名無しさん mailto:sage [2021/02/18(木) 23:05:06.07 ID:jY4O/2kG0.net] いつもの人っぽいけど、クラスモジュールでエラー止める設定すれば分かるかもしれん
729 名前:デフォルトの名無しさん mailto:sage [2021/02/18(木) 23:14:40.89 ID:Oj+90OvE0.net] >>726 シートに書くとエラーの場所がわからないから標準モジュールに書け、 なんて書いてるサイトがあって、その解決策しばらく気づかなかったわ
730 名前:デフォルトの名無しさん mailto:sage [2021/02/18(木) 23:38:17.80 ID:chyUcvsN0.net] ズボラせず1個ずつちゃんと調べなよ
731 名前:デフォルトの名無しさん mailto:sage [2021/02/19(金) 00:07:23.60 ID:3RXIcFsGH.net] DimとかConstとかでタイプミス SubやFunctionの宣言部でもよくある Visual StudioでVB.netプロジェクトを作ってコピペで発見できる場合もある
732 名前:デフォルトの名無しさん mailto:sage [2021/02/19(金) 03:59:43.95 ID:fFtIagGX0.net] >>725 ,726 実行時例外じゃないです。 >>728 >>724 の通り、発生元と思われるモジュール内コードを全て削除しても発生し、 モジュール自体を解放すると発生しなくなるため悩んでいます。 私も一個づつ調べたいのですが、もはや調べ方も分からない状況です・・・。 >>729 宣言文のタイプミスでも、通常はエラーが発生すれば原因箇所が選択(反転)されると思いますが、 今回はそのエラー箇所の選択がなく困っています。 vscodeですがVB.netプロジェクトへのコピペもやってみましたが、 関係のないエラーや注意が大量発生して特定困難でした。 というか互換性ないと聞いたのですが・・・
733 名前:デフォルトの名無しさん mailto:sage [2021/02/19(金) 04:14:33.39 ID:fFtIagGX0.net] お礼言うの忘れてました。 沢山回答ありがとうございます。 些細な事柄でも気になる点があればレス欲しいです。 一応質問内容をまとめます ・エラーが発生しているのはコンパイル時です ・通常あるエラー発生箇所の選択がされません(この「発生個所が選択されないという現象」自体の原因も調べています) ・原因と思われるクラスモジュールを解放すると発生しなくなります ・しかし、そのモジュール内のコードを消すだけでは引き続き発生します
734 名前:デフォルトの名無しさん mailto:sage [2021/02/19(金) 05:06:58.61 ID:UOwA+kJV0.net] なるほど つまりVBAのコード側の問題ではないと 詳しい状況が分からんから何とも言えんけど 考えられる状況としては ・ファイルがぶっ壊れてる ・フォーム側に使ってるバージョンにそぐわないオブジェクトが設定されている ・使ってるバージョンにそぐわないAPIとかが使用されている ・何か変な参照設定切ってそれを使ってる とかじゃない? クラスとかライブラリ(何をもってライブラリと言ってるのかは分からんけど)使ってて 結構大きなプロジェクトファイル使ってると言うなら 元々動いてたものだったと思うんだけど 今改修を掛けているものが同じ環境下(EXCELのバージョンとか使ってるならランタイムとかが同じ) で動くか確認した方がいいんじゃないかと思うよ
735 名前:デフォルトの名無しさん mailto:sage [2021/02/19(金) 05:44:12.15 ID:6sfyeCMi0.net] >>731 クラスモジュールを開放したあと、同名のクラスモジュールを空で新規追加したらどうなるの? そのクラスモジュールの名前は何?
736 名前:デフォルトの名無しさん mailto:sage [2021/02/19(金) 14:25:58.33 ID:fFbWPHDZ0.net] ユーザ定義型は定義されていません
737 名前:デフォルトの名無しさん mailto:sage [2021/02/19(金) 21:58:08.64 ID:p5a0AjpTa.net] >>724 インポートとかすると改行や全角空白、タブ、eofとかがおかしいのが入ることあるよ
738 名前:デフォルトの名無しさん mailto:sage [2021/02/19(金) 23:14:07.14 ID:FBAC49/30.net] ぶっちゃけ原因不明でコードを新規ブックにそのままコピペしたら動いたってのは何度かあった 理由がわからんだけだったのかもしれないけど
739 名前:デフォルトの名無しさん mailto:sage [2021/02/20(土) 00:17:20.20 ID:/mom05J70.net] 怪しい辺りを切り取り貼り付けで直るパターンもあった
740 名前:デフォルトの名無しさん mailto:sage [2021/02/20(土) 02:39:20.18 ID:exEQDxd80.net] エクスポートして新規ブックでインポートしてどうなるか試せ そのクラスモジュールとやらをどっかに張ればなんかわかるかもしれん
741 名前:デフォルトの名無しさん [2021/02/20(土) 10:48:29.96 ID:+4W1iOYZ0.net] 帳票でひな形ファイルにDBからのデータを張り付ける際に ひな形ファイルに前もって用意している一覧より件数が多くなり 一覧部を増やす際って存在している行を必要分コピペしたら処理が重く遅くなりますか? 範囲指定して行の高さや罫線その他書式を作成していくのが普通ですかね
742 名前:デフォルトの名無しさん mailto:sage [2021/02/20(土) 11:52:03.51 ID:FtzhhzvS0.net] 1件ずつコピペしてたら遅くなる可能性があるけど 必要な行数を計算してコピペ1回なら問題にはならんのじゃないかな
743 名前:デフォルトの名無しさん mailto:sage [2021/02/20(土) 13:27:35.51 ID:GLzvS33R0.net] すげえ基本的な話だけど 2003と2019じゃソースを書き換えないと使えないのはわかるけど 2015と2019は使えるの?
744 名前:デフォルトの名無しさん mailto:sage [2021/02/20(土) 18:00:11.01 ID:M8GDG/5fa.net] 自分で試せばいいのに
745 名前:デフォルトの名無しさん mailto:sage [2021/02/20(土) 20:13:12.43 ID:OBWJcVSW0.net] 書き換えないといけないところが分かるなんてすごい実力者だね
746 名前:デフォルトの名無しさん mailto:sage [2021/02/21(日) 00:07:25.30 ID:J4wkOwtc0.net] 複数バージョン持ってないと試せんだろう
747 名前:デフォルトの名無しさん mailto:sage [2021/02/21(日) 00:25:53.91 ID:yZKJ3RszM.net] どっちでも動くように作るのさ
748 名前:デフォルトの名無しさん mailto:sage [2021/02/21(日) 02:57:17.71 ID:PfdFyViG0.net] 持ってないバージョンで動かないかもとか考えなくてもよくね
749 名前:デフォルトの名無しさん mailto:sage [2021/02/21(日) 03:11:53.20 ID:NVBTtkD2H.net] 逆に、2019だけで動くようにしろと言われてもできる気がしない わざと追加されたワークシート関数を使うみたいな、手段と目的を逆転させるのは無しで そんなに言語仕様って変わってたっけ?
750 名前:デフォルトの名無しさん mailto:sage [2021/02/21(日) 03:19:27.77 ID:BLnKvBaX0.net] VBAの言語仕様なんて、64ビット対応しか変わってないだろ EXCELのアプリケーションモデルは多少の変化はあったかもしれんが
751 名前:デフォルトの名無しさん mailto:sage [2021/02/21(日) 09:10:45.20 ID:Mdn5KR7p0.net] 基本使えるだろうけど 365のは分からん
752 名前:デフォルトの名無しさん mailto:sage [2021/02/21(日) 09:54:57.69 ID:E7dwtz5J0.net] 2019未満は切り捨てるためにわざと2019仕様に変更とか わからん