!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512
↑2行に減ってるけど、同じ内容を3行に増やして貼り付けるナリ
ExcelのVBAに関する質問スレナリ
コード書き込みや作成依頼もOKナリ
※前スレ
Excel VBA 質問スレ Part74
https://mevius.5ch.net/test/read.cgi/tech/1639932059/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
探検
Excel VBA 質問スレ Part75
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (スフッ Sd7f-wadS)
2022/02/09(水) 14:24:32.62ID:I0u44nFvd286デフォルトの名無しさん (ワッチョイ 5f68-g6h8)
2022/03/03(木) 14:13:34.66ID:9O05M6/x0287デフォルトの名無しさん (テテンテンテン MM86-65e0)
2022/03/03(木) 14:19:57.38ID:KJVc8U50M >>286
ありがとうございます。
この”ワークシート名”が分からなくても動かしたいのです。
つまり、hogehoge.xlsx だったり zukozuko.xlsxだったりするので
最初にアクティブだったファイル(シート)に戻ってくる汎用性がほしい。
ありがとうございます。
この”ワークシート名”が分からなくても動かしたいのです。
つまり、hogehoge.xlsx だったり zukozuko.xlsxだったりするので
最初にアクティブだったファイル(シート)に戻ってくる汎用性がほしい。
288デフォルトの名無しさん (ワッチョイ 5f68-g6h8)
2022/03/03(木) 14:22:48.58ID:9O05M6/x0289デフォルトの名無しさん (ワッチョイ 5f68-g6h8)
2022/03/03(木) 14:24:24.97ID:9O05M6/x0 そういやブックを指定する時はopenでいいけど、
シート名が不定な時、シートを指定する方法ってないのか
一旦開いてinputboxにインデックスかシート名入れるぐらいしかないのだろうか
シート名が不定な時、シートを指定する方法ってないのか
一旦開いてinputboxにインデックスかシート名入れるぐらいしかないのだろうか
290デフォルトの名無しさん (スップ Sdea-8W3/)
2022/03/03(木) 14:32:22.98ID:jSBR5AQpd まずワークシートもワークブックもわかってない事から勉強したほうがよいのではないか
それとよくわからず何となく動いたものを他人に渡して大丈夫なのかと不安になるわ
それとよくわからず何となく動いたものを他人に渡して大丈夫なのかと不安になるわ
291デフォルトの名無しさん (ワッチョイ 5f68-g6h8)
2022/03/03(木) 14:43:43.44ID:9O05M6/x0 あんまり大丈夫じゃないけど、そこまで言うのもねぇ
292デフォルトの名無しさん (テテンテンテン MM86-65e0)
2022/03/03(木) 15:56:08.71ID:KJVc8U50M 心配かけます
とりあえず、データは何回でもダウンロードできるのでいくら壊れても大丈夫です。
内輪の事務ですし
やはり、どんなファイル名(シート名)でもOKとなると難しいですかね
当然フルパスみたいに書くのが良いのはわかります。
とりあえず、データは何回でもダウンロードできるのでいくら壊れても大丈夫です。
内輪の事務ですし
やはり、どんなファイル名(シート名)でもOKとなると難しいですかね
当然フルパスみたいに書くのが良いのはわかります。
293デフォルトの名無しさん (スップ Sdea-8W3/)
2022/03/03(木) 16:16:41.04ID:jSBR5AQpd 加工されるワークブックにはワークシートは複数なの?それとも1つなの?
仮に先頭にあるワークシートであれば
Set Ws = Worksheets(1)
のような指定をすればいいだけだぞ
ワークシート名が決まった名前であれば
Set Ws = Worksheets("○○")
のような指定でもOK
どのシートが加工していいのかを判断できるなら当初のFor文で回しながらシートを特定してもいいかと思うが
ある程度のルールが決まった質問じゃないと漠然としすぎて回答する側もとまどうと思うぞ
仮に先頭にあるワークシートであれば
Set Ws = Worksheets(1)
のような指定をすればいいだけだぞ
ワークシート名が決まった名前であれば
Set Ws = Worksheets("○○")
のような指定でもOK
どのシートが加工していいのかを判断できるなら当初のFor文で回しながらシートを特定してもいいかと思うが
ある程度のルールが決まった質問じゃないと漠然としすぎて回答する側もとまどうと思うぞ
294デフォルトの名無しさん (ワッチョイ ff2f-65e0)
2022/03/03(木) 17:11:57.48ID:AMDtBRAN0 >>284
>てっきりWSという関数に加工BOOKの場所データが格納されていて
Wsは関数じゃなくて変数
その変数に値をセットしていたのがFor文
>最初にアクティブになっていたブックシート情報を関数に入れておけばよいと想像しているのですが、どうすればいいかとかわかっていません。
Set Ws=ActiveSheet
かな。試してないけど
とりあえずForの代わりにこれで動くんじゃね
あまりにも基本がわかってない感があるなぁ
>てっきりWSという関数に加工BOOKの場所データが格納されていて
Wsは関数じゃなくて変数
その変数に値をセットしていたのがFor文
>最初にアクティブになっていたブックシート情報を関数に入れておけばよいと想像しているのですが、どうすればいいかとかわかっていません。
Set Ws=ActiveSheet
かな。試してないけど
とりあえずForの代わりにこれで動くんじゃね
あまりにも基本がわかってない感があるなぁ
295デフォルトの名無しさん (スッップ Sdea-BsgF)
2022/03/03(木) 17:21:03.63ID:Vn+IwdQAd コピペしかしない人なんでしょ
296デフォルトの名無しさん (テテンテンテン MM86-65e0)
2022/03/03(木) 18:46:16.06ID:KJVc8U50M >>294
はいすいません
関数は書き間違いです。変数ですよねw
ちょっと、脳が
Set Ws=ActiveSheet
で辻褄があいました。
最初の For Nextで全シートした場合も1シートだけやった場合もエラーが出ずに自分の脳みそも合致がいきました。
これを書いていないのに Forで動かしたときに問題なかったので???状態になっておりました。
ありがとうございます。
はいすいません
関数は書き間違いです。変数ですよねw
ちょっと、脳が
Set Ws=ActiveSheet
で辻褄があいました。
最初の For Nextで全シートした場合も1シートだけやった場合もエラーが出ずに自分の脳みそも合致がいきました。
これを書いていないのに Forで動かしたときに問題なかったので???状態になっておりました。
ありがとうございます。
297デフォルトの名無しさん (スフッ Sdea-SZxA)
2022/03/03(木) 19:43:39.19ID:5R1CCyAZd 何ていうかVBAの言語より先にちゃんとした構文の日本語を学ぶ事をおすすめします
298デフォルトの名無しさん (ワッチョイ 9eda-q1UJ)
2022/03/03(木) 21:25:56.68ID:pVJYfbHP0 いやでも回答者さんの言うとおりだと思う。理屈や仕組み分からないまま使ったりしていたらいつかは大事故に繋がる。
過去にそういう事が身近であった。
過去にそういう事が身近であった。
299デフォルトの名無しさん (スップ Sdea-8W3/)
2022/03/03(木) 21:46:06.24ID:jSBR5AQpd 何がきっかけで作ることになったか知らないけど
どうして動いてるかもわからずに作って少ししておかしいことに気づいてもすぐ直せなかったら評価悪くなると思うんだよね
自分の周りの出来事でなければ知ったことではないんだけどその辺は踏まえて作った方がいいよ
どうして動いてるかもわからずに作って少ししておかしいことに気づいてもすぐ直せなかったら評価悪くなると思うんだよね
自分の周りの出来事でなければ知ったことではないんだけどその辺は踏まえて作った方がいいよ
300デフォルトの名無しさん (テテンテンテン MM86-JUvV)
2022/03/03(木) 22:33:01.31ID:yer8R1MmM ID:KJVc8U50M の言い回しが技術サイトでありがちな英語かロシア語の機械翻訳文に似てて草
301デフォルトの名無しさん (スプッッ Sdbf-cdvC)
2022/03/05(土) 11:35:29.63ID:lcqTf7BDd !!Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Long
For i =1 to 5
cells(i,4)=DateValue(Cells(i,1)&" 年"&" 月"&Cells(i,2)&Cells(i,3)&"日")
Next i
End Sub
上記記述して実際にシートに数字を入力すると型が一致しませんとエラーになってしまいます
どうしていいのかわからずご教授していただければと
素人みたいな質問すいません
Dim i As Long
For i =1 to 5
cells(i,4)=DateValue(Cells(i,1)&" 年"&" 月"&Cells(i,2)&Cells(i,3)&"日")
Next i
End Sub
上記記述して実際にシートに数字を入力すると型が一致しませんとエラーになってしまいます
どうしていいのかわからずご教授していただければと
素人みたいな質問すいません
302デフォルトの名無しさん (アウアウウー Sa0f-3vQF)
2022/03/05(土) 12:01:15.53ID:tG3yIb4ia 月の位置がおかしいから?w
303デフォルトの名無しさん (スップ Sdbf-Djfv)
2022/03/05(土) 12:21:43.22ID:RMBcHsBod こういうひとってデバッグの仕方とか知らないのかね?
Debug.Print(Cells(i,1)&" 年"&" 月"&Cells(i,2)&Cells(i,3)&"日")
のようなことをすればどんな値が指定されているかわかるんだからみればいいのに
>素人みたいな質問すいません
素人でもこんな質問するかなという内容
Debug.Print(Cells(i,1)&" 年"&" 月"&Cells(i,2)&Cells(i,3)&"日")
のようなことをすればどんな値が指定されているかわかるんだからみればいいのに
>素人みたいな質問すいません
素人でもこんな質問するかなという内容
304デフォルトの名無しさん (ドコグロ MM7f-5gj/)
2022/03/05(土) 12:21:43.61ID:6K6JgexZM305デフォルトの名無しさん (ドコグロ MM7f-5gj/)
2022/03/05(土) 12:22:36.15ID:6K6JgexZM 被ったわ…
306デフォルトの名無しさん (ワッチョイ 0fb0-pp7o)
2022/03/05(土) 12:39:47.23ID:/JtJWIIA0 そもそもVBAにする必要あるのかこれ?
307デフォルトの名無しさん (スプッッ Sdbf-cdvC)
2022/03/05(土) 12:51:19.12ID:lcqTf7BDd >>301
Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Long
For i =1 to 5
cells(i,4)=DateValue(Cells(i,1)&" 年"& Cells(i,2)&"月"&Cells(i,3)&"日")
Next i
End Sub
すいません!
月の位置が違いました
上記の記述でも型が一致しませんとエラーになってしまいます
Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Long
For i =1 to 5
cells(i,4)=DateValue(Cells(i,1)&" 年"& Cells(i,2)&"月"&Cells(i,3)&"日")
Next i
End Sub
すいません!
月の位置が違いました
上記の記述でも型が一致しませんとエラーになってしまいます
308デフォルトの名無しさん (ワッチョイ 9f02-6Pw1)
2022/03/05(土) 13:08:57.00ID:GCjMsc400 =Date(A2, B2, ... え?それ以上はやめとけって? はーい
309デフォルトの名無しさん (スップ Sdbf-Djfv)
2022/03/05(土) 13:15:31.27ID:RMBcHsBod その書き方だと少なくとも変更された際のイベントでDateValueを正しく動作させるには
1から5行目までの1から3列目までにそれぞれ年月日の値が保証されないと型が一致しないとでるけど
そういう状態が担保できてるの?
1行目の入力中でもその書き方だと2行目以降が空欄だと単なる「年月日」という値でDateValue実行してしまいますよ
1から5行目までの1から3列目までにそれぞれ年月日の値が保証されないと型が一致しないとでるけど
そういう状態が担保できてるの?
1行目の入力中でもその書き方だと2行目以降が空欄だと単なる「年月日」という値でDateValue実行してしまいますよ
310デフォルトの名無しさん (スフッ Sdbf-OYGG)
2022/03/05(土) 13:43:03.37ID:9H2YJJUDd セルの中身が実はシリアル値でしたに一票
311デフォルトの名無しさん (スプッッ Sdbf-cdvC)
2022/03/05(土) 14:24:04.55ID:lcqTf7BDd312デフォルトの名無しさん (スップ Sdbf-Djfv)
2022/03/05(土) 14:46:06.75ID:RMBcHsBod >>311
いずれかのセルが空欄や数字以外だったら4列目に空を設定
それ以外の場合のみDateValueとかでいいんじゃないの
ただ結果的に月日が不正な値(99月など)ならどうするとかそういうのも含めて自分で考えないとこの先やっていけないのでは
いずれかのセルが空欄や数字以外だったら4列目に空を設定
それ以外の場合のみDateValueとかでいいんじゃないの
ただ結果的に月日が不正な値(99月など)ならどうするとかそういうのも含めて自分で考えないとこの先やっていけないのでは
313デフォルトの名無しさん (スプッッ Sdbf-cdvC)
2022/03/05(土) 14:57:28.77ID:lcqTf7BDd314デフォルトの名無しさん (ワッチョイ 0f10-yG/L)
2022/03/08(火) 11:28:41.82ID:VCo1qiqP0 すみません、質問です!
例えばA1セルに関数が入っていたとします
A1セルが空白かどうか(関数は入っています)をVBAのIF文で分岐したいですがうまく行きません
VBAでは空白を取得できているはずなんですが何故なんでしょう…
どなたか対応方法を教えてください
例えばA1セルに関数が入っていたとします
A1セルが空白かどうか(関数は入っています)をVBAのIF文で分岐したいですがうまく行きません
VBAでは空白を取得できているはずなんですが何故なんでしょう…
どなたか対応方法を教えてください
315デフォルトの名無しさん (ブーイモ MM7f-2VcS)
2022/03/08(火) 11:33:03.86ID:e+QnjkryM If Range("A1").Fomula = "" Then
316デフォルトの名無しさん (ブーイモ MM7f-2VcS)
2022/03/08(火) 11:33:45.29ID:e+QnjkryM あ、嘘。ごめん。間違えた。忘れて。
317デフォルトの名無しさん (ワッチョイ 0f10-yG/L)
2022/03/08(火) 11:39:20.91ID:VCo1qiqP0318デフォルトの名無しさん (ワッチョイ 0f10-yG/L)
2022/03/08(火) 11:41:01.62ID:VCo1qiqP0 大丈夫です!
ありがとうございますm(_ _)m
ご存じの方いらっしゃいましたらよろしくお願いします
ありがとうございますm(_ _)m
ご存じの方いらっしゃいましたらよろしくお願いします
319デフォルトの名無しさん (ワッチョイ 9f01-sVLR)
2022/03/08(火) 12:20:48.22ID:vjLwCjzB0 普通にセルのValueなりTextなりを見ればいいんじゃないの?
320デフォルトの名無しさん (ワッチョイ 3b68-6iqn)
2022/03/08(火) 12:37:16.79ID:YxxaCHXb0321デフォルトの名無しさん (アウアウウー Sa0f-3vQF)
2022/03/08(火) 13:18:52.50ID:+eE97yRCa 空なのか空白なのか
322デフォルトの名無しさん (スフッ Sdbf-6iqn)
2022/03/08(火) 13:28:01.68ID:ez1E04nZd323デフォルトの名無しさん (ワッチョイ 9f01-sVLR)
2022/03/08(火) 14:12:30.12ID:vjLwCjzB0 Empty と空文字列と空白は違うって話かと
324デフォルトの名無しさん (ワッチョイ fb5f-8vjq)
2022/03/08(火) 19:12:34.37ID:IBMOg+Z/0 前任者のシートで0を書式で空白にしてるのには参ったね
textプロパティを覚えるきっかけにはなったけど
textプロパティを覚えるきっかけにはなったけど
325デフォルトの名無しさん (ワッチョイ 3be6-XzgJ)
2022/03/08(火) 19:25:23.65ID:fxoU/Jgx0 文字列枠だけど 書式は #
よくやるw
よくやるw
326デフォルトの名無しさん (ワッチョイ 9f4f-7JAY)
2022/03/11(金) 06:05:40.07ID:a7Y3SJRd0 すみません、質問させてください。
VBAで自作したクラスのメソッドやプロパティの一覧を列挙するにはどうすれば宜しいでしょうか?
どのような自作したクラスでも使える汎用的なものを作成したいです。
VBAで自作したクラスのメソッドやプロパティの一覧を列挙するにはどうすれば宜しいでしょうか?
どのような自作したクラスでも使える汎用的なものを作成したいです。
327デフォルトの名無しさん (アウアウウー Sa0f-Ua9o)
2022/03/11(金) 07:32:33.79ID:mh6S44cma すみません。
特定のセル内に有るリンクを抽出する方法は有りますか?
特定のセル内に有るリンクを抽出する方法は有りますか?
328デフォルトの名無しさん (スフッ Sdbf-6iqn)
2022/03/11(金) 08:32:32.67ID:vHBnGMWOd329デフォルトの名無しさん (スフッ Sdbf-6iqn)
2022/03/11(金) 08:33:31.79ID:vHBnGMWOd >>327
Hyperlink
Hyperlink
330デフォルトの名無しさん (ワッチョイ 824f-QC5K)
2022/03/12(土) 01:24:13.27ID:7NvJtuE10 >>328
なるほど、VBAでは無理なんですね。
以前、VB.Netの命令をVBAで走らせることが出来る場合があることをこのスレで聞いたことがあるような気がしましたので、
そちらとAPIで実装出来ないかを模索してみます。ありがとうございました。
なるほど、VBAでは無理なんですね。
以前、VB.Netの命令をVBAで走らせることが出来る場合があることをこのスレで聞いたことがあるような気がしましたので、
そちらとAPIで実装出来ないかを模索してみます。ありがとうございました。
331デフォルトの名無しさん (ワッチョイ ed2f-VrXP)
2022/03/12(土) 03:38:02.55ID:pgjQzAZm0 オブジェクトブラウザがやってるけど、どうやってるんだろうな
>>328
エクスポートとかしなくても、VBEオブジェクト使えばコードのスキャンはできる
プロシジャ名の列挙だけでよければここの実行結果3がそうじゃね
https://excelwork.info/excel/codemoduleproperty/
>>328
エクスポートとかしなくても、VBEオブジェクト使えばコードのスキャンはできる
プロシジャ名の列挙だけでよければここの実行結果3がそうじゃね
https://excelwork.info/excel/codemoduleproperty/
332デフォルトの名無しさん (ワッチョイ 824f-QC5K)
2022/03/12(土) 08:17:43.49ID:7NvJtuE10 >>331
後出しになってしまい申し訳ありません。
実は、実際にやりたかったことは
自作したEntityクラスのプロパティを
片っ端からGetして配列に入れ込み、
それをシートに展開すると言うことでした。
名前の列挙さえ取得できれば
後はリフレクションで呼び出せば可能と
考えていました。
おかげで実装の目処がつきました。
ありがとうございます。
後出しになってしまい申し訳ありません。
実は、実際にやりたかったことは
自作したEntityクラスのプロパティを
片っ端からGetして配列に入れ込み、
それをシートに展開すると言うことでした。
名前の列挙さえ取得できれば
後はリフレクションで呼び出せば可能と
考えていました。
おかげで実装の目処がつきました。
ありがとうございます。
333デフォルトの名無しさん (ワッチョイ 01da-2kLS)
2022/03/13(日) 02:21:31.96ID:YEneWsYd0 どういう状況で使うんだろう
自分で作ったのに数が多すぎて覚えてないとか?
自分で作ったのに数が多すぎて覚えてないとか?
334デフォルトの名無しさん (ワッチョイ a97c-0GCz)
2022/03/13(日) 02:43:05.91ID:B1jPEMw70 素人ですが質問させて下さい。
画像のような、1つのシートに20行単位の表で、連番と日付を上の表から取得するようなブックを作成しています。
表の順番を変えても、常に1つ上の表の番号+1、同じ日付としたいため、直接セルを参照せずこのような関数を使用しています。
式は、↓としています。
=INDIRECT(ADDRESS(ROW()-20,COLUMN()))
起動中は問題なく動作するのですが、ブックを閉じて再起動すると、起動時に必ず落ちてしまいます。(手動計算にすると開ける)
コピーを作成して、上記の式の部分だけ消すと問題なく起動します。
この場合、何が悪いのでしょうか。或いは代替手段があれば教えて頂けると助かります。
https://i.imgur.com/cVZnwnZ.jpg
画像のような、1つのシートに20行単位の表で、連番と日付を上の表から取得するようなブックを作成しています。
表の順番を変えても、常に1つ上の表の番号+1、同じ日付としたいため、直接セルを参照せずこのような関数を使用しています。
式は、↓としています。
=INDIRECT(ADDRESS(ROW()-20,COLUMN()))
起動中は問題なく動作するのですが、ブックを閉じて再起動すると、起動時に必ず落ちてしまいます。(手動計算にすると開ける)
コピーを作成して、上記の式の部分だけ消すと問題なく起動します。
この場合、何が悪いのでしょうか。或いは代替手段があれば教えて頂けると助かります。
https://i.imgur.com/cVZnwnZ.jpg
335デフォルトの名無しさん (ワッチョイ a97c-0GCz)
2022/03/13(日) 02:49:45.62ID:B1jPEMw70 普段VBAを触っているためVBAスレで質問してしまいました。
スレ違いであればスルーして下さい。
スレ違いであればスルーして下さい。
336デフォルトの名無しさん (ワッチョイ 02da-GArk)
2022/03/13(日) 03:12:17.58ID:JfJkUCau0 >>335
多分Excel板なら親切な人が回答してくれすよ
多分Excel板なら親切な人が回答してくれすよ
337デフォルトの名無しさん (ワッチョイ 8d68-9pEf)
2022/03/13(日) 05:18:44.42ID:JG4Baegn0338デフォルトの名無しさん (ワッチョイ a97c-0GCz)
2022/03/13(日) 11:02:15.36ID:B1jPEMw70 レスありがとうございます。
こいつ自体難のあるものなんですね。
offsetで狙った動きができました。ありがとうございます。
こいつ自体難のあるものなんですね。
offsetで狙った動きができました。ありがとうございます。
339デフォルトの名無しさん (スップ Sda2-WCXV)
2022/03/13(日) 14:32:38.85ID:UXs3pJFgd 普通に「=R[-20]C+1」じゃダメなのかね(R1C1形式
340デフォルトの名無しさん (ベーイモ MM96-0GCz)
2022/03/14(月) 05:49:07.49ID:3S2IFgLOM >>339
これだと移動させたとき式の値も変動してしまいました。
これだと移動させたとき式の値も変動してしまいました。
341デフォルトの名無しさん (スップ Sda2-WCXV)
2022/03/14(月) 07:57:10.59ID:727wXMaZd >>340
失礼、移動後も保証しないとだめだからこれではだめですね
失礼、移動後も保証しないとだめだからこれではだめですね
342デフォルトの名無しさん (ベーイモ MM96-0GCz)
2022/03/14(月) 17:48:06.77ID:yx1wpkrnM >>334ですが、当初安定していたもののまた同じ現象になりました。
端末を変えるなり新しいブックにして作り直したり色々試すも改善せず、T列の参照だけがこの現象を引き起こしている(参照先が文字列だと発生しないが数値は発生)ことが分かったため他の列を経由して参照する形で概ね落ち着きました。
エクセル自体のバグなのか分かりませんが同種の状況の方の参考まで。
端末を変えるなり新しいブックにして作り直したり色々試すも改善せず、T列の参照だけがこの現象を引き起こしている(参照先が文字列だと発生しないが数値は発生)ことが分かったため他の列を経由して参照する形で概ね落ち着きました。
エクセル自体のバグなのか分かりませんが同種の状況の方の参考まで。
343デフォルトの名無しさん (ワッチョイ 8d68-9pEf)
2022/03/15(火) 13:19:58.65ID:cMhtDWKy0344デフォルトの名無しさん (ワッチョイ 2eda-9pEf)
2022/03/16(水) 04:32:35.42ID:3pfuXf5y0 ブックがブックわれている
345デフォルトの名無しさん (スフッ Sda2-eKgF)
2022/03/16(水) 07:48:40.55ID:/fL7/vIcd セル「 ちくしょーちくしょー! 完全体に…… 完全体にさえなればー! 」
346デフォルトの名無しさん (ワッチョイ 8d68-9pEf)
2022/03/16(水) 07:55:37.71ID:tVfnjSl40 エクセル「私の行数は 1048576です」
347デフォルトの名無しさん (ワッチョイ 824f-QC5K)
2022/03/16(水) 10:32:53.21ID:EfOqqAli0 質問させて下さい。
EXCELの自ブックのシートにVBAにてADO接続でSQLを投げてRecordSetに値を取得していますが、
あまりに遅いのでINDEXを対象のシートに設定したいのですが、可能でしょうか?
可能であれば実装方法を教えて頂けるとありがたいです。
CREATE INDEXのSQLを投げると
「この操作は、このタイプのオブジェクトには実行できません。」というエラーが返って来ます。
EXCEL VBA上でのADO接続だったのでこちらのスレで質問させて頂きました。
もしスレ違いで有れば誘導して頂けるとありがたいです。
EXCELの自ブックのシートにVBAにてADO接続でSQLを投げてRecordSetに値を取得していますが、
あまりに遅いのでINDEXを対象のシートに設定したいのですが、可能でしょうか?
可能であれば実装方法を教えて頂けるとありがたいです。
CREATE INDEXのSQLを投げると
「この操作は、このタイプのオブジェクトには実行できません。」というエラーが返って来ます。
EXCEL VBA上でのADO接続だったのでこちらのスレで質問させて頂きました。
もしスレ違いで有れば誘導して頂けるとありがたいです。
348デフォルトの名無しさん (ワッチョイ 012d-42Eo)
2022/03/16(水) 20:05:55.54ID:E9jeVJ9d0 エクセルの開発、挿入、フォームコントロールでリストボックスを作って操作するのですが
sheet.ListBoxes("List").AddItem "A" だったかな?で追加できるんですが
sheet.ListBoxes("List").Clear で全て消去したくてもエラーになります。
sheet.ListBoxes("List").RemoveItem 1 で消せるので .ListCountが0になるまで
消していくとやりたいことはできるのですがClearのような1行で消す方法が知りたいです。
あと選択している内容を取得したいのですが.Valueだと内容ではなくインデックス番号?が返ってきます
選択している内容を文字列で取得できないのでしょうか。検索してもユーザーフォームのページばかり
出てきてわかりません。どなたか知っていたら教えてください。
sheet.ListBoxes("List").AddItem "A" だったかな?で追加できるんですが
sheet.ListBoxes("List").Clear で全て消去したくてもエラーになります。
sheet.ListBoxes("List").RemoveItem 1 で消せるので .ListCountが0になるまで
消していくとやりたいことはできるのですがClearのような1行で消す方法が知りたいです。
あと選択している内容を取得したいのですが.Valueだと内容ではなくインデックス番号?が返ってきます
選択している内容を文字列で取得できないのでしょうか。検索してもユーザーフォームのページばかり
出てきてわかりません。どなたか知っていたら教えてください。
349デフォルトの名無しさん (ワッチョイ e5ce-9pEf)
2022/03/17(木) 04:53:04.06ID:2UkhCjLQ0350デフォルトの名無しさん (ワッチョイ 4de6-AsxV)
2022/03/17(木) 05:57:03.26ID:RdQIwXxN0 最近のExcelってヘルプもついていないの?
351デフォルトの名無しさん (ワッチョイ 8d68-9pEf)
2022/03/17(木) 06:07:57.47ID:UlLj9IGM0 ネットがあるからねぇ
352デフォルトの名無しさん (ワッチョイ 2eda-9pEf)
2022/03/17(木) 11:46:40.93ID:mL7eqXCg0 それでなくなったのか、知らんかった
353デフォルトの名無しさん (ワッチョイ a101-hMcI)
2022/03/17(木) 12:31:38.84ID:9VjLQzax0 F1押すだけでヘルプ出てくるの便利だったのにね
354デフォルトの名無しさん (ワッチョイ 6963-kZ2d)
2022/03/17(木) 12:35:28.43ID:++LfIShu0 F1ヘルプ起動大嫌い
起動遅いから誤爆した時ストレス
起動遅いから誤爆した時ストレス
355デフォルトの名無しさん (ワッチョイ 8549-hyR6)
2022/03/17(木) 12:48:39.33ID:Rh0i5fdo0 まあ市販ソフトとかゲームとかおしゃんな小物とかもネット参照多くなったしね
356デフォルトの名無しさん (ワッチョイ e5ce-9pEf)
2022/03/17(木) 15:59:04.45ID:2UkhCjLQ0 2010のあたりでヘルプがオンラインになって、旧バージョンのヘルプファイルを無理矢理インストールして使ってた記憶がある
あれってどのバージョンの話だっけ
あれってどのバージョンの話だっけ
357デフォルトの名無しさん (ワッチョイ e5ce-9pEf)
2022/03/17(木) 16:00:36.21ID:2UkhCjLQ0358デフォルトの名無しさん (ブーイモ MMa5-qlT7)
2022/03/17(木) 18:51:23.33ID:NNC6CjWiM やたら重かった無能なイルカよりはマシだろう
359デフォルトの名無しさん (ワッチョイ 0242-qEgK)
2022/03/17(木) 19:51:28.31ID:hQEb7r5k0 お前を消す方法なつい
360デフォルトの名無しさん (ワッチョイ 82da-WCXV)
2022/03/17(木) 20:00:50.39ID:+xJma3Ej0361デフォルトの名無しさん (ワッチョイ 012d-42Eo)
2022/03/17(木) 22:15:36.31ID:UYkpbTrn0362デフォルトの名無しさん (ワッチョイ 82da-oXSz)
2022/03/18(金) 09:26:17.20ID:yuFF0zGe0363デフォルトの名無しさん (スッップ Sda2-WCXV)
2022/03/18(金) 10:46:32.32ID:GvFVeYD4d364デフォルトの名無しさん (ワッチョイ 82ad-WCXV)
2022/03/18(金) 19:57:18.31ID:hw4UnylL0 シート上で任意に選択した範囲を set myRange = 選択範囲 のように代入した後、
For Each buf In myRange.Value
処理A
Next
という処理をしようとすると、
・選択範囲が複数ある場合:正常に動作する
・選択範囲が1つの場合:「型が一致しません」のエラーになる
「For each ○ IN ●」の●には複数セルが指定されていないといけないということでしょうか?
For Each buf In myRange.Value
処理A
Next
という処理をしようとすると、
・選択範囲が複数ある場合:正常に動作する
・選択範囲が1つの場合:「型が一致しません」のエラーになる
「For each ○ IN ●」の●には複数セルが指定されていないといけないということでしょうか?
365デフォルトの名無しさん (ワッチョイ 068c-9CcT)
2022/03/18(金) 23:38:51.84ID:q1DQLrxB0366デフォルトの名無しさん (ワッチョイ 068c-9CcT)
2022/03/18(金) 23:53:01.28ID:q1DQLrxB0 おっと間違えた
dim buf as range
For Each buf In myRange
debug.print buf.value
Next
dim buf as range
For Each buf In myRange
debug.print buf.value
Next
367デフォルトの名無しさん (ワッチョイ 13ad-bSSa)
2022/03/19(土) 00:50:36.99ID:OOddD3UI0 myRange.Value の Value がおかしかったのか。
ありがとうございます。
ありがとうございます。
368デフォルトの名無しさん (ワッチョイ 81da-yD8a)
2022/03/19(土) 02:03:56.48ID:yYNieGSo0 >>364
myRangeの何をbufとしてとりたいの?各セル、連続した複数のセル、myRange全体によつて正しいこーどは異なる
myRangeの何をbufとしてとりたいの?各セル、連続した複数のセル、myRange全体によつて正しいこーどは異なる
369364 (ワッチョイ 13ad-bSSa)
2022/03/19(土) 10:45:02.08ID:OOddD3UI0 >368
任意のドラッグ操作で選択したセルと同じ行のL列(左から12番目)に入っている文字列を結合して表示させようとしました。
Dim cnt As Integer
Dim myRange As Range
Dim buf As Range
Dim target As String
cnt = Selection.Rows.Count
Set myRange = Range(Cells(Selection.Rows(1).Row, 12), Cells(Selection.Rows(1).Row + cnt - 1, 12))
For Each buf In myRange
target = target & buf & vbCrLf
Next
Debug.Print target
任意のドラッグ操作で選択したセルと同じ行のL列(左から12番目)に入っている文字列を結合して表示させようとしました。
Dim cnt As Integer
Dim myRange As Range
Dim buf As Range
Dim target As String
cnt = Selection.Rows.Count
Set myRange = Range(Cells(Selection.Rows(1).Row, 12), Cells(Selection.Rows(1).Row + cnt - 1, 12))
For Each buf In myRange
target = target & buf & vbCrLf
Next
Debug.Print target
370デフォルトの名無しさん (ワッチョイ 8b10-QoK8)
2022/03/19(土) 10:48:26.22ID:kJy21FG50 >>347で質問させて頂いたものです。
色々調べましたがシートにINDEXを設定するのは実現可能か分からなかったのと、
出来ない場合、代替案を考えたいのですが、
ひとつのシートに20万行、100列の一覧が有ったとして
そのとき、ひとつの項目(項目1とします)はある値とイコール、更に別の項目(項目2とします)は
項目1で抽出したレコードの内の最大値を求めたいです。
どのような方法が一番速く処理出来ると思いますか?
色々調べましたがシートにINDEXを設定するのは実現可能か分からなかったのと、
出来ない場合、代替案を考えたいのですが、
ひとつのシートに20万行、100列の一覧が有ったとして
そのとき、ひとつの項目(項目1とします)はある値とイコール、更に別の項目(項目2とします)は
項目1で抽出したレコードの内の最大値を求めたいです。
どのような方法が一番速く処理出来ると思いますか?
371364 (ワッチョイ 13ad-bSSa)
2022/03/19(土) 10:48:43.76ID:OOddD3UI0 >>369は正常に動作したコードです。
最初は下記のようなコードでエラーとなっていました。
Dim buf As Variant ←Variant型にしていた。
For Each buf In myRange.Value ←.Valueを付けていた。
target = target & buf & vbCrLf
Next
Debug.Print target
最初は下記のようなコードでエラーとなっていました。
Dim buf As Variant ←Variant型にしていた。
For Each buf In myRange.Value ←.Valueを付けていた。
target = target & buf & vbCrLf
Next
Debug.Print target
372デフォルトの名無しさん (ブーイモ MMeb-J1hb)
2022/03/19(土) 10:51:21.24ID:CvJNM5+IM 範囲検索するのにfindとworksheetfunction.matchとではどちらが速いですか?
373デフォルトの名無しさん (ブーイモ MMeb-J1hb)
2022/03/19(土) 10:52:04.86ID:CvJNM5+IM ちなみに完全一致の場合です
374デフォルトの名無しさん (アウアウウー Sa5d-1noo)
2022/03/19(土) 11:51:46.09ID:/t3SgnSXa 自分で試せばいいだろw
375デフォルトの名無しさん (ワッチョイ 5168-noGs)
2022/03/19(土) 11:51:57.89ID:i9OMIEsk0 試したほうが早いよ
376デフォルトの名無しさん (ワッチョイ 1302-dhUW)
2022/03/19(土) 12:52:21.15ID:UXt2lmR80 は?試してたらこんな所で聞きませんけど?
377デフォルトの名無しさん (ワッチョイ fb8c-ef3C)
2022/03/19(土) 12:52:58.71ID:4DGoWoBi0 >>369
>cnt = Selection.Rows.Count
>Set myRange = Range(Cells(Selection.Rows(1).Row, 12), Cells(Selection.Rows(1).Row + cnt - 1, 12))
Set myRange = Cells(Selection.Row, "L").Resize(Selection.Rows.Count)
もっと簡単に書けそうな気もするがこんなもんかな
>cnt = Selection.Rows.Count
>Set myRange = Range(Cells(Selection.Rows(1).Row, 12), Cells(Selection.Rows(1).Row + cnt - 1, 12))
Set myRange = Cells(Selection.Row, "L").Resize(Selection.Rows.Count)
もっと簡単に書けそうな気もするがこんなもんかな
378デフォルトの名無しさん (アウアウウー Sa5d-1noo)
2022/03/19(土) 13:47:10.61ID:zEPprvQva >>376
試してなくても、こんなところで聞かないでくださいw
試してなくても、こんなところで聞かないでくださいw
379デフォルトの名無しさん (ワッチョイ b15f-UimK)
2022/03/19(土) 14:44:42.82ID:qNoriQBK0380デフォルトの名無しさん (ワッチョイ 13ad-bSSa)
2022/03/19(土) 15:12:32.83ID:OOddD3UI0 >>377
ありがとうございます。.Resizeを使うとスマートに書けるんですね。使ってみます。
ありがとうございます。.Resizeを使うとスマートに書けるんですね。使ってみます。
381デフォルトの名無しさん (スップ Sd33-yRs7)
2022/03/19(土) 15:57:19.25ID:rhR/rlzyd autofilterで表示されたものだけで、列をautofitすることは出来ますか?
382デフォルトの名無しさん (ワッチョイ fb8c-ef3C)
2022/03/19(土) 16:36:01.13ID:4DGoWoBi0 SpecialCells(xlCellTypeVisible)でできんじゃねーかな
383デフォルトの名無しさん (ワッチョイ 092b-8yjF)
2022/03/19(土) 16:40:58.85ID:AuBNrAzT0 コードはスマートなのに…って言われろ
384デフォルトの名無しさん (ワッチョイ fb8c-ef3C)
2022/03/19(土) 18:04:38.19ID:4DGoWoBi0 Range("テーブル1[項目A]").SpecialCells(xlCellTypeVisible).Columns.AutoFit
出来ないのかと思ったらできるじゃん
出来ないのかと思ったらできるじゃん
385デフォルトの名無しさん (アウアウウー Sa5d-WKyQ)
2022/03/19(土) 18:22:46.82ID:qn2+ggVDa VBA素人にご教示ください
PowerQueryで整形したテーブルのデータを
別ブックのVBAに引っ張ってきたい場合
・列データをユーザー定義型にまとめる
・ListObjectを使う
どちらがベターでしょうか?
PowerQueryで整形したテーブルのデータを
別ブックのVBAに引っ張ってきたい場合
・列データをユーザー定義型にまとめる
・ListObjectを使う
どちらがベターでしょうか?
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【米FRB】0.25%利下げ決定 3会合連続、雇用下支え [蚤の市★]
- 訪米認証「ESTA」、SNS利用情報の提出義務化へ 日本人観光客も対象に [蚤の市★]
- テレビ朝日本社から20~30代の関連会社社員とみられる男性が転落し死亡 六本木けやき坂通りの通行人にはけが人なし [少考さん★]
- テレビ朝日 本社から男性が転落し死亡。関連会社社員か 当たった通行人が左肩軽傷 [阿弥陀ヶ峰★]
- 「身を切る改革」どこへ? 維新「身内」への公金支出、地方でも続々 [蚤の市★]
- 「残クレ」でマイホーム、国が銀行向け保険 新型住宅ローン普及促す -日経 ★3 [少考さん★]
- 【悲報】俺たちの国民民主党、高市総理の補正予算賛成へwへwwwwwwwwwwwお米券確定wwwwww [257926174]
- 福井県民の最大の罪は俺を神奈川に放流しちゃったこと
- ゲッダン
- 【朗報】VTuber、とうとうスパロボに参戦する
- 高橋洋一、終わる [523957489]
- 毎日菊花茶飲んでたら美肌になったよ
