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


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

Excel VBA 質問スレ Part69



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

632 名前:デフォルトの名無しさん mailto:sage [2021/02/13(土) 06:48:06.39 ID:qLIOxiK10.net]
あ、なんだ
VBAで使えたりLinqが使えるようになる訳では無いのか
あいつら基本レイトバインディングだからトレースするとき慣れてないと分かり辛いんだよな
良かったなお前ら

633 名前:デフォルトの名無しさん mailto:sage [2021/02/13(土) 07:44:30.44 ID:PYtZn7CJ0.net]
>>628
> セキュリティでVBA禁止にしても、開いた瞬間に固まるブックが簡単に作れてしまうのかな
今でもあるけど計算回数の上限決めて打ち切るでしょ

634 名前:デフォルトの名無しさん mailto:sage [2021/02/13(土) 07:56:56.81 ID:IALcuoUI0.net]
>>627
https://www.microsoft.com/en-us/research/blog/lambda-the-ultimatae-excel-worksheet-function/

LAMBDA is the true lambda that we know and love

you can define a fixed-point combinator

dekiru

635 名前:デフォルトの名無しさん mailto:sage [2021/02/13(土) 11:41:30.80 ID:PelpVnvk0.net]
>>611
どんだけ凄いの?
だれか40歳にもわかるように説明して

636 名前:デフォルトの名無しさん mailto:sage [2021/02/13(土) 12:21:31.92 ID:PYtZn7CJ0.net]
>>633
例えば、A1, B1, C1セルの中身をカンマで繋いでD1に格納したい
その際セルが空なら"[空だよーん]"ってしたいとするでしょ
今までは
D1: =TEXTJOIN(", ", FALSE, IF(A1 = "", "[空だよーん]", A1), IF(B1 = "", "[空だよーん]", B1), IF(C1 = "", "[空だよーん]", C1))
って似たようなIF式を何度も書く必要があったけどLAMBDA使えたら
f: =LAMBDA(x, IF(x = "", "[空だよーん]", x))
って定義しておけば
D1: =TEXTJOIN(", ", FALSE, f(A1), f(B1), f(C1))
って書ける
さらに課長に"[空だよーん]"とかふざけんな、"[空でございます]"にしろって言われてもLAMBDAの1箇所を直すだけで済む

637 名前:デフォルトの名無しさん mailto:sage [2021/02/13(土) 12:41:35.80 ID:BN4b1mTrp.net]
>>633
40のお前がバレンタインデーでチョコ貰えるくらい凄い

638 名前:デフォルトの名無しさん mailto:sage [2021/02/13(土) 12:49:30.81 ID:PelpVnvk0.net]
>>635
(>_<)\

639 名前:デフォルトの名無しさん mailto:sage [2021/02/13(土) 14:07:20.92 ID:IALcuoUI0.net]
ただの関数定義じゃないか

それで十分だった気はするが

640 名前:デフォルトの名無しさん mailto:sage [2021/02/13(土) 15:14:43.31 ID:wz9KaBQo0.net]
VBAに影響ほとんどなさそう
一発でピボ集計とかシート挿入とかに関係ないし



641 名前:デフォルトの名無しさん mailto:sage [2021/02/13(土) 15:33:24.19 ID:QpeYGISo0.net]
と言うかラムダ式書けるなら、ついでにセル内でも数式の改行とインデントができるようにしてくれればよかったのにな
Excel職人のIFだらけの数式を読むのがまずキツイんだは

642 名前:デフォルトの名無しさん mailto:sage [2021/02/13(土) 15:40:56.55 ID:jHG+5C+w0.net]
セルで分ければいいんだけど一つの数式にまとめられるのがすごいと思ってるからな
まあ自分もそうだったけど

643 名前:デフォルトの名無しさん mailto:sage [2021/02/13(土) 17:28:35.52 ID:VP7xI/GI0.net]
単に複数セル使うのが嫌なだけってのが多いように見える

644 名前:デフォルトの名無しさん mailto:sage [2021/02/13(土) 18:42:07.48 ID:yi//B+MQH.net]
まとめて印刷とか名前を付けて保存みたいな手作業を置き換えるVBAはなくならないかな

645 名前:デフォルトの名無しさん mailto:sage [2021/02/13(土) 19:19:56.21 ID:PYtZn7CJ0.net]
>>639
> セル内でも数式の改行とインデントができるようにしてくれればよかったのにな
それ昔からできるぞ…
https://www.becoolusers.com/excel/img/long-formula-line-break20.png

646 名前:デフォルトの名無しさん mailto:sage [2021/02/13(土) 19:28:08.81 ID:jHG+5C+w0.net]
営業の要ミーティング恐い((((;゚Д゚)))))))

647 名前:デフォルトの名無しさん mailto:sage [2021/02/13(土) 21:29:40.36 ID:T3s5Sft8d.net]
>>639
普通にやってるけど。
読むのキツイんだろ。

648 名前:デフォルトの名無しさん mailto:sage [2021/02/13(土) 21:48:38.47 ID:wz9KaBQo0.net]
うかる!って、説明ヘタだね…

649 名前:デフォルトの名無しさん mailto:sage [2021/02/13(土) 22:16:40.52 ID:OlVotr6u0.net]
職場にIf and orの職人がいるオレに謝れ

650 名前:デフォルトの名無しさん mailto:sage [2021/02/13(土) 23:44:53.12 ID:29TtheM20.net]
んー? 今までセル内の数式って受身の動きだったけど
それ実装すれば自発的に動けるようになるってこと?



651 名前:デフォルトの名無しさん mailto:sage [2021/02/14(日) 00:40:24.25 ID:X0FsHGir0.net]
>>643
まじか、しらんかったわ
勝手にスペース削られたりするもんだと思ってたわ。。

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プロジェクトへのコピペもやってみましたが、
関係のないエラーや注意が大量発生して特定困難でした。
というか互換性ないと聞いたのですが・・・






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

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

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