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
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仕様に変更とか わからん
753 名前:デフォルトの名無しさん mailto:sage [2021/02/21(日) 18:05:27.14 ID:bOGV4XR6a.net] 古いのいつまでも使われると新しいの売れないからかな
754 名前:デフォルトの名無しさん mailto:sage [2021/02/22(月) 11:45:30.79 ID:FCcJxvZt0.net] >>747-748 動かなくなる原因は言語仕様だけじゃないよ 2007 辺りでグラフ周りがかなり変更されてソースに手を入れる羽目になったとかある
755 名前:デフォルトの名無しさん mailto:sage [2021/02/22(月) 13:18:52.42 ID:kOquHQc20.net] そうっすか
756 名前:デフォルトの名無しさん mailto:sage [2021/02/22(月) 17:32:51.40 ID:/Yenw0XZd.net] >>752 正にそれ結構大変だった。
757 名前:デフォルトの名無しさん mailto:sage [2021/02/24(水) 00:40:47.03 ID:HDXsWzJB0.net] VB長けてる人ってExcelの機能関数に疎い人多いね 田中に聞けば?
758 名前:デフォルトの名無しさん mailto:sage [2021/02/24(水) 01:26:36.59 ID:QrJrBlgW0.net] Worksheetfunction使うのでそれはない。
759 名前:デフォルトの名無しさん mailto:sage [2021/02/24(水) 02:17:27.39 ID:CQQJwOCp0.net] 2019欲しいけど いまクソ高いんだよな 昔は10000ぐらいで買えたよな?
760 名前:デフォルトの名無しさん mailto:sage [2021/02/24(水) 02:42:57.68 ID:+tup+0KC0.net] 今でも1000円で…
761 名前:デフォルトの名無しさん mailto:sage [2021/02/24(水) 02:59:15.91 ID:CQQJwOCp0.net] 割れは怖くて使えんわ
762 名前:デフォルトの名無しさん [2021/02/24(水) 14:09:58.51 ID:HLiwO+Yd0.net] 64bitで未定プログレスバー使うにはどうすればいいの?
763 名前:デフォルトの名無しさん mailto:sage [2021/02/24(水) 19:44:17.34 ID:CpCHMr0L0.net] オレの2019はアマゾンで900円くらいだ
764 名前:デフォルトの名無しさん [2021/02/25(木) 21:11:18.01 ID:u/u+FiSza.net] 原本となるシートでマクロが動いて欲しくないからマクロを搭載した別ブックのシートにコピーしようとしてるのだけど、activeXコントロールのコピーで詰んでいる。 selectAllすると位置がずれる、ネットで見かけるfor each x in sheets.Shapes方式だと「rangeクラスのTopプロパティを設定できません」とか出る(原因分からないうえ、同じものが複数コピーされてたりする) Clickメソッド使ってるからシート自体に記述しなくちゃならない状態(原本にマクロを搭載できない理由でもある) 原本をコピーした新しいシートにマクロを転写する方法か、activeXコントロールをうまくコピーする方法などをどなたか分かれば教えてください。 よろしくお願いします
765 名前:デフォルトの名無しさん mailto:sage [2021/02/25(木) 21:28:47.82 ID:mAZPOqOP0.net] 俺はファイルコピーで解決しようとするから知らんわ
766 名前:デフォルトの名無しさん mailto:sage [2021/02/25(木) 22:14:57.96 ID:zfgrXATG0.net] シートコピーしたら
767 名前:デフォルトの名無しさん mailto:sage [2021/02/25(木) 23:11:51.37 ID:h5Yd8P0i0.net] デザインモードじゃないから梃子でも動かないって意味か?
768 名前:デフォルトの名無しさん mailto:sage [2021/02/26(金) 03:13:02.34 ID:RTjFElvVH.net] >>762 ブックを別名で保存してからそっちを開いたら? コントロールの状態や中身まで含めた完全なコピーが簡単にできるよ
769 名前:デフォルトの名無しさん mailto:sage [2021/02/26(金) 14:42:35.05 ID:uwtwTRSf0.net] >>760 わいはコントロールやめてユーザーフォームで自作した
770 名前:デフォルトの名無しさん mailto:sage [2021/02/26(金) 18:00:57.54 ID:3R2zb4XV0.net] >>762 原本はそのままで動くように作っといて、原本をコピーするマクロは原本とは別ファイルにするのが良いんじゃね
771 名前:デフォルトの名無しさん mailto:sage [2021/02/27(土) 04:24:42.64 ID:RGn50kCua.net] >>764 新しくシートをコピーしたらシートにプログラムが何も書かれてない状態になります(原本に記述されていないから) シートにシートをコピーしたらコントロールが消えてしまいます(コントロールのコピーに躓いている) >>766 >>768 フールプルーフの観点で原本にプログラムを直接書きづらいんですよね。このツールを使うのも原本を更新するのも私じゃないので… >>767 フォームなら別のブックにコピーできるし使いたいんですが要件的に使えないんですよね 最初はフォームで動作するものを作ったんですが、いちいちウィンドウが開くのめんどくさいと一蹴されました あくまでシートにマクロをコピーする方法か、activeXコントロールの綺麗なコピーの方法を探しています。
772 名前:デフォルトの名無しさん mailto:sage [2021/02/27(土) 04:28:43.21 ID:qDfn4Zqt0.net] >>769 みつかるといいね
773 名前:デフォルトの名無しさん mailto:sage [2021/02/27(土) 08:38:37.65 ID:+dnfLZll0.net] >>769 出来るけど、セキュリティ的に大問題アリ。 マクロウイルスのやりたいことと一緒だからな。
774 名前:デフォルトの名無しさん mailto:sage [2021/02/27(土) 10:42:13.72 ID:MpvSTRAea.net] ウイルスの作り方探してるのかな
775 名前:デフォルトの名無しさん mailto:sage [2021/02/27(土) 16:48:22.46 ID:9QiTc1mX0.net] 質問です。 VBAでウィンドウの幅によってレイアウトが変化するページを取り込む方法で詰まっています。 例えば、下記のURLのテーブル「5」をExcelに取り込みたいとします。 しかし、このページはウィンドウの幅を狭くすると「自動レイアウト」になります。 https://www.nankankeiba.com/uma_info/2014104006.do https://i.imgur.com/EE2hZfE.png 本当はPC固定レイアウトで取り込みたいのですが、下のVBAだと自動レイアウトの方で取り込まれてしまうのですが どうしたらよろしいでしょうか。 VBA https://i.imgur.com/tQsJ8fB.png PC固定のレイアウトで取り込みたいけど、取り込むとこうなる https://i.imgur.com/106irI4.png
776 名前:デフォルトの名無しさん mailto:sage [2021/02/27(土) 16:50:21.04 ID:9QiTc1mX0.net] >>773 列や行の関係でPC固定で取り込めるようにしたいのですが、クエリで何か設定などあるのでしょうか
777 名前:デフォルトの名無しさん mailto:sage [2021/02/27(土) 19:51:14.14 ID:qDfn4Zqt0.net] >>774 よくわからんが内容は正しく取得できているんだから、表示用のシート作って そっちに2行を1行にまとめて表示させるマクロ書けばいいんじゃね
778 名前:デフォルトの名無しさん mailto:sage [2021/02/27(土) 20:13:53.31 ID:9QiTc1mX0.net] >>775 実は最近サイトがスマホ用に「自動レイアウト」に対応してリニューアルしたので もともと作ってあった表示用シートが連れてしまうために「PC固定レイアウト」にしたいのです…
779 名前:デフォルトの名無しさん mailto:sage [2021/02/27(土) 20:25:57.30 ID:Ydjbk0QN0.net] URLの後ろに何か引数入れればいいんだろうけど、javascript読めんからわからん。 Web系のスレで聞くか、ここでやるんだったらDOM解析してgetElementsByTagNameとかで取得するしかない。
780 名前:デフォルトの名無しさん mailto:sage [2021/02/27(土) 20:28:08.24 ID:9QiTc1mX0.net] >>777 やっぱりweb系のプログラミング知識がないと無理っぽいですかね 自分はさっぱりなので、そっち系でも聞いてみます。
781 名前:デフォルトの名無しさん mailto:sage [2021/02/27(土) 20:46:04.22 ID:Ydjbk0QN0.net] ってそれExcel2013? 2019だとどちらも見えていて、 Table4が自動でTable5が固定になっている。 もし2019が使えるなら、QueryTables.Addじゃなくて、 Queries.Addでやってみるといい。
782 名前:デフォルトの名無しさん mailto:sage [2021/02/27(土) 21:38:16.92 ID:9QiTc1mX0.net] >>779 わあああ!できました!!! 自分のだと、テーブル5だと自動で、テーブル6が固定でした!! 固定と自動でテーブルずらすだけで良かったんですね。 本当に助かりました;;感謝!
783 名前:デフォルトの名無しさん mailto:sage [2021/02/27(土) 21:44:40.46 ID:9QiTc1mX0.net] なるほどー URLの違いじゃなくてテーブル数が増えていてテーブルの変更でレイアウトを別々で読み取っていたんですね 今後も参考になる知識でめっちゃタメになりました! いやーID:Ydjbk0QN0さんの着眼点のおかげで助かりました。感動です
784 名前:デフォルトの名無しさん mailto:sage [2021/02/27(土) 23:59:01.77 ID:W4zZ+WShM.net] いいってことよ(≧∇≦)b
785 名前:デフォルトの名無しさん mailto:sage [2021/02/28(日) 00:38:35.67 ID:1YMxSz2W0.net] XMLを取得したあと、要素を取得するためにgetElementByIdを使用する方法は無いでしょうか? XMLでは仕様上IDの規定が無いのでこのメソッドは無いようですが、 対象にしているデータはIDが重複していない(タグ名は重複)ことが分かっています
786 名前:デフォルトの名無しさん mailto:sage [2021/02/28(日) 08:33:47.20 ID:0O+t6o860.net] やったことないけどXMLをブラウザーで開いて取得とか
787 名前:デフォルトの名無しさん mailto:sage [2021/02/28(日) 13:49:51.41 ID:0oELj/fSM.net] >>783 単なる属性値だからxpathで属性検索すればいいんじゃね?
788 名前:デフォルトの名無しさん mailto:sage [2021/02/28(日) 17:16:05.41 ID:1YMxSz2W0.net] >>785 ごめんなさいこれで出来ました コーディングミスしてただけだったようで…
789 名前:デフォルトの名無しさん mailto:sage [2021/02/28(日) 23:20:44.51 ID:Kw7HIYRo0.net] テーブルを使った列転記について質問です。 オートフィルターを使って、 特定条件に合致する列のみを別シートに転記するvbaを作成しています。 検索条件が1件でもヒットすれば、うまく動くのですが、 検索条件の結果が0件の場合、なぜかテーブル内にある全ての列がコピーされてしまいます。 解決方法をご教示いただけたら幸いです。 With Range("A3").ListObject .Range.AutoFilter 1, "佐藤" .Range.AutoFilter 2,"2020" .Range.AutoFilter 3, "土地" .ListColumns(4).DataBodyRange.Copy Sheets(2).Range("B12") .ListColumns(5).DataBodyRange.Copy Sheets(2).Range("D12") .ListColumns(6).DataBodyRange.Copy Sheets(2).Range("C12") End With
790 名前:デフォルトの名無しさん mailto:sage [2021/02/28(日) 23:38:01.73 ID:aFXd9lq10.net] 0の時コピペしない
791 名前:デフォルトの名無しさん mailto:sage [2021/03/01(月) 03:56:15.13 ID:eH/icf8Z0.net] Countifsで、1件以上の時 と 条件分岐させるのが読み返してわかりやすくなるんでね
792 名前:デフォルトの名無しさん mailto:sage [2021/03/01(月) 16:05:10.88 ID:SmQDGBhxa.net] 前回の表示が残っているならメッセージボックスとか出すといいかも
793 名前:デフォルトの名無しさん [2021/03/02(火) 13:09:41.26 ID:hWjLfumtC.net] (1)A1〜A100セルにそれぞれ0001.txt〜0100.txtという文字列が格納されている (2)ファイルサーバ上(\\share\txt)に(1)の名前と対応する実際のテキストファイルが格納されている →この場合、B1〜B100セルの中に(1)と対応する(2)のテキストファイルの中身を自動で入力させたいのですが、どのようにすれば可能でしょうか。。
794 名前:デフォルトの名無しさん [2021/03/02(火) 13:28:23.53 ID:xn7W4wyt0.net] 丸投げか? まずは自分で作ってみろよ
795 名前:デフォルトの名無しさん mailto:sage [2021/03/02(火) 13:38:46.86 ID:Myd7KGhQ0.net] 先生が添削してくれるみたいです
796 名前:デフォルトの名無しさん mailto:sage [2021/03/02(火) 15:10:40.09 ID:S4zyTxBwM.net] A1セルに書かれたファイル名を読み取る そのファイル名を開く B1セルから書き込む を繰り返せばいいと思います
797 名前:デフォルトの名無しさん mailto:sage [2021/03/02(火) 17:47:07.08 ID:stzBjdlCH.net] いつもの人
798 名前:デフォルトの名無しさん mailto:sage [2021/03/02(火) 19:42:52.19 ID:h1fr2K930.net] >>791 どうでもいいがB1〜B7へは入力じゃなくて出力って言った方がいい
799 名前:デフォルトの名無しさん mailto:sage [2021/03/02(火) 23:19:45.83 ID:yDNF8xvg0.net] >>791 マクロの自動記録
800 名前:720 mailto:sage [2021/03/03(水) 02:30:35.83 ID:hWQCqBl50.net] >>720 ですが、解決というか悪化したので一から作り直すことにしました。 原因と思われていたフォームモジュールを解放しても常時コンパイルエラーが発生するようになりました。 思い切って順に全て解放しながらコンパイルしてみたところシートを含めた全てのモジュールを 削除して新規シート一枚の状態でも発生する始末です。 >>733 試してみたところ、使用できない文字を使った時と同じ「不正なオブジェクト名」だと怒られます。 (もし重複なら「既に〜使われています」) コンパイルエラーの原因にある「ユーザー定義型」というのはフォームのモジュール名の事だったのかも・・・ ちなみに原因らしいフォームのモジュール名を変えても同様のコンパイルエラーは発生し、 その新しいモジュール名でも同じ症状が出るようになります。 >>732 >>何をもってライブラリと言ってるのかは分からん すみません。参照設定にあるCOMコンポーネントの事です。 APIはSleepしか読み込んでおらず、 コントロールもリストボックスとコマンドボタンとオプションボタンのみです。 元の環境で実行も出来ませんでしたが、 テストで色んなモジュールの解放してインポート、モジュール名変更して戻すを繰り返していると、 プロジェクトのコンパイルは同じエラーがでるが、(環境問わず)実行は可能という状態になりました。 コンパイルのテストしかしていなかったのでどのタイミングで実行可能になったのかは分かりませんが、 引き続き調べてみます。
801 名前:720 mailto:sage [2021/03/03(水) 02:46:34.41 ID:hWQCqBl50.net] >>733 レスに追加です 名前の変更では「不正なオブジェクト名」と出ますが、その名前でのインポートは成功します。 インポート出来れば自由にフォーム名を変更したり戻したりできました。 >>735 見てみましたが、特に変わりはないようです。 >>738 フォームモジュール以外を全部移したところコンパイルが通りました。 同じフォームを作って再発すると怖いので、 フォームに有ったコントロールはシート上に再現して、とりあえずこれで運用してみることにしました。
802 名前:デフォルトの名無しさん mailto:sage [2021/03/03(水) 21:19:07.61 ID:CdcHt2GZ0.net] シートの中身を初期化しようと、範囲選択してClearcontentしたら処理が滅茶苦茶重くて 他のどの処理よりも一番重いまであります セルの中身をクリアして真っ新にしたいんですが、軽くなる方法とか削除するのに他のいい方法は何かありますか?
803 名前:デフォルトの名無しさん mailto:sage [2021/03/03(水) 22:01:26.45 ID:x1QDDRPj0.net] 画面更新切ってないとか
804 名前:デフォルトの名無しさん mailto:sage [2021/03/03(水) 22:53:36.00 ID:cY/9Er0+0.net] 場合によってはシートごと削除&同じ名前のシート作成orテンプレで用意していたシートをコピー
805 名前:デフォルトの名無しさん [2021/03/03(水) 23:58:49.06 ID:zTCiutcbd.net] >>800 Clearcontentsじゃなくて単に「削除」に時間が掛かってるだけ説。 どうしようもないExcelのバグ、俺もこの前株シミュレーター作ってて直面した。 たかだが3万行×1列消すのに10分掛かる糞仕様。 どういうわけかD列とE列に入っているがD列を消してからだとE列が、E列を消してからだとD列がそうなる。 2007と2013入れてたがどちらでも同じ結果。スプレッドシートでならサクっと消せた。
806 名前:デフォルトの名無しさん mailto:sage [2021/03/04(木) 00:37:39.40 ID:0V1y42950.net] 質問させてください 業務用PCのためDsoFramerのインストールを容易には出来ない環境で、ユーザーフォームにワークシートを表示するシステムを作成するのは厳しいでしょうか
807 名前:デフォルトの名無しさん mailto:sage [2021/03/04(木) 02:10:45.74 ID:EcELbNCH0.net] レスありがとうございます 画面更新は勿論切ってます ただ初期化したいだけなのにアホみたいに時間が掛かるので、同じ使用のシートを作る処理にする事も検討します
808 名前:デフォルトの名無しさん mailto:sage [2021/03/04(木) 06:47:21.46 ID:yRtnuXOv0.net] 変数に入れてから消すとか、同じ選択範囲の配列(空白)ぶっこんでみてもだめかな
809 名前:デフォルトの名無しさん mailto:sage [2021/03/04(木) 10:44:48.81 ID:B7/1q6yvH.net] 一気に何万行も消さずに100行ずつとか小分けしたら軽くなったりしないのかな
810 名前:デフォルトの名無しさん mailto:sage [2021/03/04(木) 10:49:05.92 ID:1zCrSMV60.net] ClearContentsで重かったことなんてないなあ。 めんどくさくてVBAじゃなくマクロで作って選択範囲小分けのまま放置してるからかな?