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
47 名前:デフォルトの名無しさん (ワッチョイ b7ce-PvPk) mailto:sage [2022/05/07(土) 21:55:14 ID:WpJq4eDb0.net] Officeが完全64bit対応になったのは2010から 12年遅れか……
48 名前:デフォルトの名無しさん (アウアウウー Sa1f-cwrN) mailto:sage [2022/05/07(土) 22:11:45 ID:9QKKUGlra.net] >>46 まあ単なるバグの可能性は "0" ではないけど
49 名前:デフォルトの名無しさん (ワッチョイ 8f68-e+q+) mailto:sage [2022/05/07(土) 22:14:36 ID:T2FkQFbN0.net] >>38 これはバグでは
50 名前:デフォルトの名無しさん mailto:sage [2022/05/07(土) 22:18:37.86 ID:cppQitqZ0.net] >>47 64bitが標準になったのは2019からだけど
51 名前:32 (ワッチョイ 9f02-PvPk) mailto:sage [2022/05/08(日) 08:41:56 ID:mrWBx7yB0.net] Sub test() Dim high As Long Dim str As String Dim num As Integer 'a str = "転" str = Asc(str) str = Hex(str) a = str 'a´ str = "転" str = Asc(str) str = Hex(CInt(str)) ad = str 'b str = "転" str = Hex(Asc(str)) str = str b = str 'c str = "転" num = Asc(str) str = Hex(num) c = str ありがとうございます。一旦は納得できました。
52 名前:デフォルトの名無しさん mailto:sage [2022/05/08(日) 19:44:09.25 ID:J4Oeet0G0.net] kou 'a str = "転" long_ = Asc(str)
53 名前:デフォルトの名無しさん mailto:sage [2022/05/08(日) 22:42:32.67 ID:CUGu1qGH0.net] high は何のため
54 名前:デフォルトの名無しさん (ワッチョイ 2f2f-vjB4) mailto:sage [2022/05/09(月) 03:05:49 ID:1tzp5qwq0.net] >>37 >暗黙の型変換は必要最小限の型に変換されるってルール そんなルール聞いたことないが、どこ情報なんだ?
55 名前:デフォルトの名無しさん mailto:sage [2022/05/09(月) 14:49:08.99 ID:Ww9cdHsy0.net] 脳内思い込み 一番タチ悪い
56 名前:デフォルトの名無しさん (ワッチョイ 3ebb-HNGk) mailto:sage [2022/05/09(月) 18:18:14 ID:7ATo4dDz0.net] コピー元のブックのシート上のチェックボックス
57 名前:(ON/OFF)を、 コピー先のブックのシート上のチェックボックス(すべてOFF)に 「チェックボックスのON/OFFの状態を」コピーしたいのですが そういう命令はありますでしょうか? [コピー元].Worksheets("シート名").Range("G3:AB5").Copy [コピー先].Worksheets("シート名").Range("G3:AB5").PasteSpecial xlPasteAll ではチェックボックスは空白のままなのですが、 「マウスでコピー元のG3:AB5を選ぶ→Ctrl+C→コピー先にCtrl+V」と手動で操作すると G3:AB5内のチェックボックスのON/OFFもコピーされるので なにか方法があるのではと思うのですが すべてをペースト(PasteSpecial xlPasteAll)ではダメなのでしょうか [] [ここ壊れてます]
58 名前:デフォルトの名無しさん mailto:sage [2022/05/10(火) 10:07:55.18 ID:4FhYKkQU0.net] ユーザーフォームのコントロールの位置調整について質問です。 テキストボックスA,B,Cが A B C と既に左右の間隔が均等に整列された状態になっており、 一番左にテキストボックスDを追加するとします。 D A B C この時、A-B間(B-C間も同じ) と D-A間の間隔を同じにしたい場合、 手動計算する(それぞれのLeftプロパティを参照して、差分を手入力する)のではなく、お手軽に設定できる操作はありますか? マウスのドラッグで D A B C を範囲選択して[書式]-[左右の間隔]-[間隔を均等にする]を選ぶと、 両端(DとC)の位置が固定された上で、その内側(D-A間、A-B間、B-C間)が均等になるだけで、 今回求めている結果にはなりませんでした。
59 名前:デフォルトの名無しさん mailto:sage [2022/05/10(火) 10:19:04.03 ID:ODIjuWluM.net] 一生に一度しか使用しない機能は実装されません
60 名前:デフォルトの名無しさん mailto:sage [2022/05/10(火) 10:49:36.48 ID:G5I31YZG0.net] D A B C を左右均等に並べたいんじゃ無いのか? D-A-B-C とか、スペースを-で表さないと、コッチからすれば説明文の上下は一緒に読めるんだが? D---A-B-C とかか?
61 名前:57 mailto:sage [2022/05/10(火) 11:44:31.14 ID:4FhYKkQU0.net] >>59 スペースをハイフンで示します。 最初の状態 A----B----C Aの左側にDを追加するとします。 D-A----B----C マウスのドラッグで DABC を範囲選択して[書式]-[左右の間隔]-[間隔を均等にする]を選んだ場合は、 両端(DとC)の位置が固定された上で、その内側(D-A間、A-B間、B-C間)が均等になるだけ。 この場合は、最初の状態でのA-B間(B-C間)の間隔(スペース4個分)が保持されていません。 D---A---B---C 今回求めている結果 D----A----B----C
62 名前:デフォルトの名無しさん mailto:sage [2022/05/10(火) 11:55:55.13 ID:G5I31YZG0.net] Cを必要なだけ右に寄せてからその操作すれば? ぴったり位置合わせしたいとかなら https://www.moug.net/tech/exvba/0120023.html 辺り参考に
63 名前:デフォルトの名無しさん mailto:sage [2022/05/10(火) 11:58:47.56 ID:Q/OuvBXU0.net] >>56 どのチェックボックス?フォーム?activeX?
64 名前:デフォルトの名無しさん mailto:sage [2022/05/10(火) 13:26:52.13 ID:EvytVRjpd.net] >>57 Controls.Addでマクロにパーツを作らせて位置を指定するか自動計算させれば簡単 自分でイベント作る必要はあるかも
65 名前:57 mailto:sage [2022/05/10(火) 21:53:08.05 ID:4FhYKkQU0.net] >>63 ありがとうございます。調べてやってみます!
66 名前:デフォルトの名無しさん mailto:sage [2022/05/10(火) 21:54:52.33 ID:4FhYKkQU0.net] >>61 ありがとうございます。参考にします。
67 名前:56 mailto:sage [2022/05/11(水) 07:58:45.59 ID:VwZpfkps0.net] >>62 「チェックボックス」だけの情報だと二つあるんですね すみません。 調べたところフォームのほうのチェックボックスでした。
68 名前:デフォルトの名無しさん mailto:sage [2022/05/12(木) 01:22:53.69 ID:UrRQ3K070.net] 'これ実行するとどうなりますか? 'Q1 「 3.2to4.1(14)ng:4>=4 」と ' 「 3.2to4.1(25)ng:4>=4 」になりますか? 'Q2 「 3.7to4(9)ng:4>=4.9 a:3.9 」と ' 「 3.8to4(9)ng:4>=5 a:4 」になりますか? Sub test() For i = 1 To 4 Step 1 Select Case i Case 1 a_from = 3.2: a_to = 4.1: a_max = 4# 'if[4 >= 4]でFalseになる Case 2 a_from = 4.2: a_to = 5.1: a_max = 5# 'if[5 >= 5]でFalseになるか確認用 Case 3 a_from = 3.7: a_to = 4#: a_max = 4# 'aが3.9までしかいかない Case 4 a_from = 3.8: a_to = 4#: a_max = 4# 'aが4までいく End Select c = 0 Debug.Print "***** from " & a_from & " to " & a_to & " max " & a_max, String(60, "*") For a = a_from To a_to Step 0.1 For b = 0# To 0.2 Step 0.1 c = c + 1 ab = a / (1 - b) okng = "ng" If a_max >= ab Then okng = "OK" Debug.Print a_from & "to" & a_to & "(" & c & ")" & okng & ":" & a_max & ">=" & Round(ab, 1) _ , "a:" & a, "b:" & b, "max:" & a_max, okng, "ab:" & ab ' Debug.Assert a_max >= a '[4 >= 4]でFalseになる Next Next Next End Sub
69 名前:デフォルトの名無しさん mailto:sage [2022/05/12(木) 02:12:42.08 ID:y5qWaFnT0.net] >>67 常識 https://blog.apar.jp/program/8900/
70 名前:デフォルトの名無しさん mailto:sage [2022/05/13(金) 15:49:14.84 ID:m1gysKVC0.net] Dim a a = Range("A1:B2") これだけでaが2×2の配列になるとたった今知ったのですが このことを手放しに使って良いのでしょうか、それとも邪道だから Dim a(2, 2)なり要素数まで指定した方が良いのでしょうか。
71 名前:デフォルトの名無しさん mailto:sage [2022/05/13(金) 15:56:46.69 ID:Bn5ry0500.net] >>69 問題ない VBA使えるやつならみんな知ってる
72 名前:デフォルトの名無しさん [2022/05/13(金) 16:05:23.39 ID:zF4dJdoD0.net] それ便利だけど誤読しやすいので静的メソッドにしてる ArrayExt.FromRange(Me.Range("A1:B2")) みたいな
73 名前:デフォルトの名無しさん mailto:sage [2022/05/13(金) 19:41:50.80 ID:q/KvZ9/90.net] officescript調べてみたけど意外と分かりやすかった これならVBAがなくなっても大丈夫そう
74 名前:デフォルトの名無しさん mailto:sage [2022/05/13(金) 19:50:05.37 ID:q/KvZ9/90.net] >>69 型使わないとバリアント型だから二次元配列になるわけか
75 名前:デフォルトの名無しさん mailto:sage [2022/05/13(金) 19:53:17.10 ID:q/KvZ9/90.net] ちなみに参考にしてる人はこう書いてた Dim a As Variant a = Range("A1:B2").Value
76 名前:デフォルトの名無しさん mailto:sage [2022/05/13(金) 22:54:29.72 ID:BcFt2CuGD.net] aは要するにポインタだからな
77 名前:デフォルトの名無しさん mailto:sage [2022/05/13(金) 22:58:14.08 ID:JesbR9jP0.net] c以上ならポインた
78 名前:デフォルトの名無しさん mailto:sage [2022/05/13(金) 23:28:52.57 ID:94QyLQ1Xa.net] >>69 誰も書いていないので驚いたが、 その方法でもいい、のではなくて、 その方法しかない。 あとは Variant を明示するかしないかの違いだけ。
79 名前:デフォルトの名無しさん (ワッチョイ ffbb-bUW4) mailto:sage [2022/05/14(土) 01:49:07 ID:5NJ35cqH0.net] セルの値を取得して書き換えて…ってやるより二次元配列で処理する方が体感3倍くらい速いから、高速化したいなら配列使えばいいよね ただ他の人もわかるようにとかメンテナンス性考えると避けた方が無難だったり、ケースバイケース
80 名前:デフォルトの名無しさん mailto:sage [2022/05/14(土) 04:08:54.94 ID:wh2tsa6Q0.net] 他人の使い勝手なんか微塵も考えていないヤツが大半だろ現場じゃあ
81 名前:デフォルトの名無しさん mailto:sage [2022/05/14(土) 04:13:11.38 ID:JIfRBOPe0.net] Variantはポインタじゃなくて共用体 そもそもVariantオブジェクトはVBA固有の機能じゃなくてWindowsに組み込まれてて、別の言語からも自由に使える どういう場面で役に立つのかわからんけど
82 名前:デフォルトの名無しさん mailto:sage [2022/05/14(土) 04:32:51.17 ID:bV9+cuz+M.net] ポインタ的な使い方するならVariant型ではなくてObject型 Dim a As Object (総称オブジェクト型) Rangeオブジェクトに特定するなら Dim a As Range (固有オブジェクト型)
83 名前:デフォルトの名無しさん [2022/05/14(土) 08:18:11.37 ID:ddohEedh0.net] Variantってよく分からん型だよな Objectもそうでないものも仕舞えるし .Netで封印されたのも頷ける
84 名前:デフォルトの名無しさん mailto:sage [2022/05/14(土) 10:07:30.24 ID:BHEGSPOf0.net] >>78 配列の方が断然早いよね。 富○通がVBで作ったEXCEL名簿出力アプリが5時間以上かかってるのが、俺がEXCELVBAで組んだのは30分で終わる。 しかも富○通のはデータ1行ごとにコピペしてるので 動かしてる間コピーのバッファが奪われて他の作業が一切できない。
85 名前:デフォルトの名無しさん [2022/05/14(土) 10:48:24.07 ID:0kHlnQQT0.net] オレオレ自慢
86 名前:デフォルトの名無しさん mailto:sage [2022/05/14(土) 10:57:42.22 ID:jjfnS8MSd.net] VBのコードみてVBAにする際に少し手直しした程度なんだと思うが どの程度のデータか不明だけど30分もかかるような処理も自分としてはNGだわ まあどっちも夜流して朝みればいいなら5時間でも一緒程度
87 名前:デフォルトの名無しさん mailto:sage [2022/05/14(土) 11:08:32.24 ID:XMrr4JDhr.net] 何分とかかかる時点でRDBとか外出ししてやれないかとか考えちゃう Excelには荷が重いんじゃないかとね
88 名前:デフォルトの名無しさん mailto:sage [2022/05/14(土) 11:27:37.36 ID:x+cFGSU+a.net] どんだけ長い処理でも耐えられて2分までだわ 30分かかるとか論外
89 名前:デフォルトの名無しさん mailto:sage [2022/05/14(土) 11:39:20.09 ID:tj4PNqc2d.net] そんなに処理に時間がかかるってことは多分生データが数Gクラスだろうからaccessやexcelでは非効率だろう ここに>83の間抜けさがよく現れてる
90 名前:デフォルトの名無しさん mailto:sage [2022/05/14(土) 11:43:13.01 ID:5E8BmIH10.net] そんな大規模なデータを扱ったことないからわからないけど 30分もかかったら途中で無限ループに入ってんだろなと思って止めてしまうわ
91 名前:デフォルトの名無しさん mailto:sage [2022/05/14(土) 11:59:12.73 ID:VTp6T5x/0.net] vbaを30分も動かすってどんな処理だよ あとあまり長い時間動かしっぱなしにすると大体フリーズしてるぞ
92 名前:デフォルトの名無しさん mailto:sage [2022/05/14(土) 12:14:29.94 ID:jjfnS8MSd.net] どんな処理でも構わないけどExcelのプロセスが起動してるときに新規のExcel起動>ファイルを開くで開けばいいけど 無意識のうちにダブルクリックなんかで開こうとしたらVBA実行中のプロセスで開かないとも限らないから 30分の拘束ってのは日中ならなし
93 名前:デフォルトの名無しさん mailto:sage [2022/05/14(土) 12:55:50.88 ID:JIfRBOPe0.net] そんなに速くしたら、フリーズしてないか監視する仕事の人がクビになっちゃうだろ ああいうのは、わざと1日かかるように作ってあるんだよ
94 名前:デフォルトの名無しさん (ワッチョイ 7dda-o6RS) mailto:sage [2022/05/14(土) 13:31:33 ID:wh2tsa6Q0.net] なんでExcelエキスパート集団の富○通がそんなクソ遅いマクロ書くのか不思議だ。
95 名前:デフォルトの名無しさん mailto:sage [2022/05/14(土) 15:15:38.33 ID:VTp6T5x/0.net] >Excelエキスパート集団 それはない
96 名前:デフォルトの名無しさん [2022/05/14(土) 16:41:13.43 ID:9uXA4NxPd.net] 富士通が直接作っているのでないだろうし、たった一つの例で全部がわかったつもりになる幼稚なアホ
97 名前:デフォルトの名無しさん mailto:sage [2022/05/14(土) 18:27:44.98 ID:msymY1pp0.net] あんまり処理に時間かかるようなやつならプログレスバーやらひとまず動いてることがわかるようなものを入れとくわ
98 名前:デフォルトの名無しさん mailto:sage [2022/05/14(土) 18:32:44.86 ID:qaSd7ep40.net] 1.xlsx、2.xlsx、3.xlsx、・・・、1000.xlsxという連番のブックがあって そのすべてにssssというシートがあって そのすべてのD2(R2C4)セルにデータがあるとして あるブックのA1~A1000に1~1000が入力してあって、 それぞれの隣(B1~B1000)に対応するブック(B500には500.xlsx)の シートssssのD2セルの中身を持ってくるのってどうすればいいですか? ExecuteExcel4Macroとか使ってそんなに難しくなくやれるかと思いきやまるでうまくいかない…
99 名前:デフォルトの名無しさん mailto:sage [2022/05/14(土) 18:58:29.62 ID:lDPvxjtFD.net] >>94 方眼紙はじめとした使い方への皮肉だろ
100 名前:デフォルトの名無しさん [2022/05/14(土) 19:14:09.21 ID:yHnyJFGQ0.net] >>97 他に条件や例外がないなら自分で書いてる通り「そんなに難しくない」が、どこで詰まってるの?
101 名前:デフォルトの名無しさん mailto:sage [2022/05/14(土) 19:20:25.44 ID:VTp6T5x/0.net] >>97 ExecuteExcel4Macroはデフォで無効にされた なんか知らんが俺も動かせなかったからもうベタ書きで https://forest.watch.impress.co.jp/docs/serial/yajiuma/1357642.html Sub Sample1() Set t = ThisWorkbook For i = 1 To 3 Set databook = Workbooks.Open(Filename:="C:\Users\81909\Downloads\" & i & ".xlsx") t.Sheets("ssss").Cells(i, 2) = databook.Sheets("ssss").Cells(2, 4) databook.Close Next End Sub >>98 それならok
102 名前:デフォルトの名無しさん mailto:sage [2022/05/14(土) 19:26:19.82 ID:msymY1pp0.net] 内容あまり理解出来てないのかもしれないけど B500の行取得してワークブックオープンで引数ファイルパス500で開いてデータ抜きたいところ抜けば良いのではないでしょうか。 4使うあたり処理を重くしたくないのでワークブックを開きたくないようにも見えますが
103 名前:デフォルトの名無しさん mailto:sage [2022/05/14(土) 19:51:35.87 ID:jjfnS8MSd.net] こんな感じになる文字列を作ればいけないか?(フォルダ名とファイル名を変更していく) MsgBox ExecuteExcel4Macro("'フォルダ名\[1000.xlsx]ssss'!R2C4")
104 名前:デフォルトの名無しさん (ワッチョイ 91da-Hs+l) mailto:sage [2022/05/15(日) 01:22:22 ID:xmtudDvv0.net] MSHTML.HTMLDocumentのbody.outerHtmlに何か代入しようとすると、 あるPCでは問題なく出来るのに、 別のPCではアプリケーション定義のエラーがでる 何故? ソースは同じなのに
105 名前:デフォルトの名無しさん mailto:sage [2022/05/15(日) 08:18:10.46 ID:Jt2O43PNd.net] 参照設定は?
106 名前:デフォルトの名無しさん mailto:sage [2022/05/15(日) 13:24:19.34 ID:K6VbLnva0.net] >>68 即レスいただいてたのに遅くなりました。ありがとうございます。 常識なんですね。とてもためになりました。 少数が原因だろうと思いつつもローカルウィンドウの値は整数だし Fixしても発生するので困ってました。ありがとうございます。
107 名前:デフォルトの名無しさん mailto:sage [2022/05/15(日) 15:21:30.27 ID:xmtudDvv0.net] >>104 してある してないと違うエラーメッセージだったような
108 名前:デフォルトの名無しさん mailto:sage [2022/05/15(日) 17:45:40.00 ID:SLK6Xy6bp.net] >>106 参照不可はない?
109 名前:デフォルトの名無しさん mailto:sage [2022/05/15(日) 17:49:03.93 ID:i2BwfRJap.net] >>83 依頼元の情報提供不足。対象件数とか。
110 名前:デフォルトの名無しさん mailto:sage [2022/05/15(日) 20:29:54.61 ID:EFSZcQ6p0.net] VBAで作ったブックを指定するにはどうやるのがいいんでしょうか VBAで複数ブックを作るとBook1、Book2、…となりますが、 どうやってそれぞれのブックを指定してやればいいのかが分かりません
111 名前:デフォルトの名無しさん mailto:sage [2022/05/15(日) 20:48:22.92 ID:xHyGsu5B0.net] ブックの作成の際にワークブック変数にセットする set=workbooks.add
112 名前:デフォルトの名無しさん mailto:sage [2022/05/15(日) 21:20:44.06 ID:i/ziY72x0.net] 変数に格納するってのは名前をつけてあげるみたいな意味合いがある気がする 変数作ってセットすれば呼び出しやすい
113 名前:デフォルトの名無しさん (ワッチョイ ebda-yvGd) mailto:sage [2022/05/15(日) 22:58:08 ID:e0cA7YQF0.net] Set wb = ThisWorkbook Set ws = wb.Worksheets("sheet名") とやっといて、 カーソル移動したいだけなのに、 ws.Range("B3").Select とやったら、 「RangeクラスのSelectメソッドが失敗しました」 と出て動かなくなって・・・??? 原因はRange.Selectやる前に 当該sheetをActivateしていないことだと 今日、ようやく知ったアタシが通り過ぎますよ・・・
114 名前:97 mailto:sage [2022/05/15(日) 23:36:58.31 ID:VONG1GsX0.net] >>101 おっしゃる通りワークブックを開きたくなかったんです 諦めて>>100 さんの手法でいきました ありがとうございました。
115 名前:デフォルトの名無しさん mailto:sage [2022/05/15(日) 23:39:04.92 ID:km049kvp0.net] >>112 VBAやっててSelect使うことなんてほぼ無いんだからその仕様を知らないことを気にしなくていい
116 名前:デフォルトの名無しさん mailto:sage [2022/05/15(日) 23:53:26.84 ID:sFHTlWBy0.net] >>113 officetanaka.net/excel/vba/tips/tips28.htm フルパス指定すればいけるっぽいけどそーゆー話ではないのかな?
117 名前:デフォルトの名無しさん mailto:sage [2022/05/16(月) 00:14:35.90 ID:D08mu/WY0.net] セルとかSelectするのは最後くらいだもんなあ
118 名前:デフォルトの名無しさん mailto:sage [2022/05/16(月) 01:37:32.91 ID:PWfPx8Kl0.net] >>107 無いんだよね 代入が出来ないだけで表示は出来るんだけど、 ""の空文字すら入れられないのは何なのか… 型が一致しないエラーでもないし 仕方がないからDocument.writeで代用したけど
119 名前:デフォルトの名無しさん (ワッチョイ ebda-Lh2i) mailto:sage [2022/05/16(月) 07:25:27 ID:x3MSJzWb0.net] >>114 気象庁の過去気象データ1時間値を DLしようとしたら、 1日ごとにURLが違うので、 1日分を読んではコピペさせてるんだけど・・・ 単体項目なら1年分一度に落とせるけど、 1観測地点の全項目は1日ごとの模様
120 名前:デフォルトの名無しさん mailto:sage [2022/05/16(月) 09:05:21.75 ID:gw7DnXAE0.net] >>118 データをコピペするだけならカーソル移動は必要ない それと、1日ずつDLだと365回になるけど、項目ごとなら15項目、15回のDLで済むからずっと早く終わると思うんだけど
121 名前:デフォルトの名無しさん mailto:sage [2022/05/16(月) 10:02:47.99 ID:a802uHDS0.net] ワイなら大まかに 「データをURLでフェッチする」機能 「データをシートに表現する」機能 とかに分けてそれぞれの中でループする どんなデータ取るんかとか知らんけど 過去の気象データなら変化ないんやろから(少しずつしか追加されないし) あらかたDLしちゃって毎日追加する運用でよくね Accessで動くか知らんがワイなら楽だし(R)DBにして、 Excelは表現に特化させる まあDBとして考えるなら119の言うように特定のデータをカラムとして取り込むほうがいいけどね
122 名前:デフォルトの名無しさん mailto:sage [2022/05/16(月) 11:38:04.10 ID:DOkjRxjB0.net] >>115 この人の書くコードは読みやすいよね
123 名前:デフォルトの名無しさん mailto:sage [2022/05/16(月) 13:47:28.98 ID:CQNp6U12M.net] >>119 >>118 > データをコピペするだけならカーソル移動は必要ない そうなんだ・・・ あたしゃ、 単ページのDLとその後の整形は PowerQuelyがやりやすかったので、 勢い、1日分ごと切って貼ってをVBAで・・・ って発想でやってた。 クエリー更新もVBAの中に入れて。 ネットの事例かき集めて 自己流で作ったのはこんな感じ。 ' DBテーブルの最終行の次行を計算 k = Range("R_Row_DB_Title").Value l = tbl3.ListRows.Count + k + 1 ' 単位読取りテーブルのデータ行をコピーして、 ' DBテーブル最終行の次行
124 名前:ゥら貼り付ける Sheets("DL単位").Select ' この記述を入れないと次を認識しなかった tbl2.DataBodyRange.Select Selection.Copy Sheets("DB").Select Range("A" & l).Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False ActiveCell.SpecialCells(xlLastCell).Select [] [ここ壊れてます]
125 名前:デフォルトの名無しさん [2022/05/16(月) 22:38:43.92 ID:zF5DsILOd.net] 0 b 1 a 3 a 7 a 9 b 13 a 18 a 17 b aがbに入れ替わったら、上に隣接するa群の一番上(1 a)の数字を参照し、9-1=8を入力 bがaに入れ替わったら、上に隣接するb群の一番上(9 b)の数字を参照し、9-13=-4を入力 これを終わりまで自動入力したいのですが、どう書けばいいでしょうか。 いまいち説明がうまくできなくてすみません。
126 名前:デフォルトの名無しさん mailto:sage [2022/05/17(火) 06:57:27.10 ID:OSHWxoLA0.net] >>110 ありがとうございます まさかこんな単純な解決法だったなんて 勉強になりました
127 名前:デフォルトの名無しさん mailto:sage [2022/05/17(火) 14:46:10.58 ID:le3TeRDS0.net] >>123 こんな感じ? https://i.imgur.com/1sgRHL7.png
128 名前:デフォルトの名無しさん (ブーイモ MMe1-mtI6) [2022/05/17(火) 19:15:44 ID:ZA1GChKVM.net] >>123 >いまいち説明がうまくできなくてすみません。 問題を上手く説明できる事は、プログラミング能力の上達にとても大事な事。
129 名前:デフォルトの名無しさん [2022/05/17(火) 22:53:48.79 ID:bIs4gfyOd.net] >>125 ありがとうございます。 試してみてるのですが、画像G14が何をしてるか教えていただけないでしょうか・・ >>126 (・へ・)
130 名前:デフォルトの名無しさん mailto:sage [2022/05/17(火) 23:08:31.99 ID:le3TeRDS0.net] >>127 >上に隣接するa群の一番上(1 a)の数字を参照 この部分 E,F列は切り替わった部分を取得している。row()にすることで、切り替わった部分を取得できる maxで、切り替わった直近を取得 あとはindexmatchでA列を取得
131 名前:デフォルトの名無しさん mailto:sage [2022/05/18(水) 00:40:35.16 ID:54FLML710.net] >>127 人様に迷惑掛けるだけの人?
132 名前:デフォルトの名無しさん [2022/05/18(水) 23:00:11.54 ID:08bF+6I50.net] 質問です EXCELのアプリケーションを別途立ち上げて それをVBAを実行しているブック側から制御することは可能でしょうか? 可能だとすればどのようにすれば実現できますか?
133 名前:デフォルトの名無しさん mailto:sage [2022/05/18(水) 23:31:31.92 ID:yWpeDHxGd.net] Application.RUN
134 名前:デフォルトの名無しさん mailto:sage [2022/05/19(木) 06:39:30.30 ID:3ImK9i5g0.net] VBAエキスパートの本見てみたけどこの範囲なら取得するのは楽勝だな
135 名前:デフォルトの名無しさん mailto:sage [2022/05/19(木) 12:33:14.63 ID:uClc3Hkf0.net] VBAの資格、人気度高いね。 ただ企業によっては何それ??的な見方されるのがちょっと。。
136 名前:デフォルトの名無しさん mailto:sage [2022/05/19(木) 15:57:56.76 ID:ednyHaa30.net] VBAでWinアプリ制御するマクロの動画作ったんだが誰も見てくれないや。 そういう需要てないのか?
137 名前:デフォルトの名無しさん mailto:sage [2022/05/19(木) 16:56:56.93 ID:OfQgMZCZ0.net] >>134 API使ってバックグラウンドで制御してるなら見る
138 名前:デフォルトの名無しさん mailto:sage [2022/05/19(木) 17:15:23.09 ID:ednyHaa30.net] >>135 https://youtu.be/DL9MuwJfXVw
139 名前:デフォルトの名無しさん mailto:sage [2022/05/19(木) 18:18:22.53 ID:H0TVdlz+M.net] ゆっくり茶番劇® か
140 名前:デフォルトの名無しさん mailto:sage [2022/05/19(木) 18:19:37.44 ID:OfQgMZCZ0.net] >>136 面白そう、家帰ったら見よう
141 名前:デフォルトの名無しさん mailto:sage [2022/05/19(木) 21:37:06.79 ID:3ImK9i5g0.net] RPA使わなくてもVBAでも結構出来るんだよね キーボード、マウス操作出来るしなんなら読み上げも出来るし アプリ立ち上げと組み合わせれば色々出来る
142 名前:デフォルトの名無しさん mailto:sage [2022/05/19(木) 22:26:16.70 ID:JItdutDu0.net] RPAは自動化そのものだから、 VBAでRPAを実現してるだけだぞ
143 名前:デフォルトの名無しさん (ワッチョイ c38c-i+mZ) [2022/05/19(木) 23:19:27 ID:5QG/OJCT0.net] >>136 動画名にExcelって必ず入れとかないと この手のネタを見たい人に検索で見つけてもらえない あと時々Excelで予定表の作り方とか番外編としてド素人受けするネタをエサとしてupするとか
144 名前:デフォルトの名無しさん mailto:sage [2022/05/19(木) 23:27:11.45 ID:uClc3Hkf0.net] ゆっくりの顔はこれから無料で使用できなくなるんだよね?
145 名前:デフォルトの名無しさん mailto:sage [2022/05/19(木) 23:45:08.95 ID:EjpQ3dyV0.net] できる 動画名にゆっくり茶番劇って入れたらダメ
146 名前:デフォルトの名無しさん mailto:sage [2022/05/19(木) 23:51:09.33 ID:ednyHaa30.net] >>141 トンクス。 オレのExcel2013だから今風のネタが作れないんだよね。 祝日込の予定表作ろうかと思ったら、自分のやつじゃpowerquery使えないことに気づいたわ。 だから誰もやってないネタとしてRPAもどきをやってみた。
147 名前:デフォルトの名無しさん mailto:sage [2022/05/20(金) 12:02:22.42 ID:QJ3dWDHN0.net] 2013でパワークエリ使っていた同僚いたけど、どうやったのだろ??