!extend:checked:vvvvv:1000:512
スレ立ての際は一行目に
!extend:checked:vvvvv:1000:512
と入れてスレ立てして下さい
ExcelのVBAに関する質問スレです
コード書き込みや作成依頼もOK
※関連スレ
VBAなんでも質問スレ Part2
http://mevius.2ch.net/test/read.cgi/tech/1432173164/
Access VBA 質問スレ Part1
http://mevius.2ch.net/test/read.cgi/tech/1328536426/
Excel総合相談所 126
https://mevius.2ch.net/test/read.cgi/bsoft/1496487719/
※前スレ
Excel VBA 質問スレ Part49©2ch.net
http://mevius.2ch.net/test/read.cgi/tech/1498410914/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
Excel VBA 質問スレ Part50 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん 転載ダメ©2ch.net (ワッチョイ 7e6d-ffY6)
2017/08/27(日) 12:40:17.57ID:LjjEWylk02デフォルトの名無しさん (ワッチョイ a511-P7rv)
2017/08/27(日) 13:54:51.09ID:jYGHj9310 いちおつしないとおちちゃうよ
3デフォルトの名無しさん (ワッチョイ ed6f-2x4P)
2017/08/27(日) 15:00:10.00ID:e4TdDFEN04デフォルトの名無しさん (アウアウウー Sa91-xxBf)
2017/08/27(日) 16:42:30.51ID:TgR8VSWoa 初心者です。お時間がありましたら、アドバイス願います。
「自分のペースでゆったり学ぶ EXCEL VBA」という本を使って
勉強しています。シートを任意の場所にコピーするという項目で、
エラーが出てしまいます。
Sub 納品書シート作成()
ThisWorkbook.Worksheets("納品書").Copy _
After := ThisWorkbook.Worksheets(3)
End Sub
これを実行すると、「修正候補:式」と出て、「After :=」の部分が赤色になります。
何が問題なのでしょうか。よろしければ教えてください。
EXCEL2010を使用しております。
「自分のペースでゆったり学ぶ EXCEL VBA」という本を使って
勉強しています。シートを任意の場所にコピーするという項目で、
エラーが出てしまいます。
Sub 納品書シート作成()
ThisWorkbook.Worksheets("納品書").Copy _
After := ThisWorkbook.Worksheets(3)
End Sub
これを実行すると、「修正候補:式」と出て、「After :=」の部分が赤色になります。
何が問題なのでしょうか。よろしければ教えてください。
EXCEL2010を使用しております。
5デフォルトの名無しさん (ワッチョイ 4a06-oKtA)
2017/08/27(日) 17:08:53.71ID:WmqrsSrM0 >>4
こっちも2010
そのプロシージャまんまコピーして(勿論「納品書」シートも作って)実行したけど正常終了
念のためワークシート数を2枚にして実行すればエラーになるけどそれはインデックスが有効な範囲にないというエラーで
そちらのエラーにはならない。
一応確認しておくけど、VBEditorの画面で上のデバッグ(D)からコンパイルをしてエラーは無い?
こっちも2010
そのプロシージャまんまコピーして(勿論「納品書」シートも作って)実行したけど正常終了
念のためワークシート数を2枚にして実行すればエラーになるけどそれはインデックスが有効な範囲にないというエラーで
そちらのエラーにはならない。
一応確認しておくけど、VBEditorの画面で上のデバッグ(D)からコンパイルをしてエラーは無い?
6デフォルトの名無しさん (ワッチョイ fe6d-VVOB)
2017/08/27(日) 17:09:02.52ID:LjjEWylk0 >>4
時間がないやつは最初からアドバイスなんて出来ない。読むのめんどくさいだけだからそういう社交辞令は書かないほうが良い
で、2010だけどエラーが出なかった。式はおかしくないはず
Worksheets(3) は、3つめのシートを表す。シートが3つ以下だとエラーが立つが、その場合は「インデックス~」のエラーになる
もし可能ならブックごとアップロードしてほしい
時間がないやつは最初からアドバイスなんて出来ない。読むのめんどくさいだけだからそういう社交辞令は書かないほうが良い
で、2010だけどエラーが出なかった。式はおかしくないはず
Worksheets(3) は、3つめのシートを表す。シートが3つ以下だとエラーが立つが、その場合は「インデックス~」のエラーになる
もし可能ならブックごとアップロードしてほしい
7デフォルトの名無しさん (ワッチョイ a511-P7rv)
2017/08/27(日) 17:42:10.42ID:jYGHj9310 >>4
改行のアンダーバーの前にスペース入れ忘れてるとかそんなんは?
改行のアンダーバーの前にスペース入れ忘れてるとかそんなんは?
8デフォルトの名無しさん (アウアウウー Sa91-xxBf)
2017/08/27(日) 18:33:58.27ID:TgR8VSWoa >5,6,7
ありがとうございます。
デバックというのを試してみましたが、同じような結果になります。
ファイルをアップロードしてみました。Dkeyは1111です。
http://www.dotup.org/uploda/www.dotup.org1351357.xlsx.html
ありがとうございます。
デバックというのを試してみましたが、同じような結果になります。
ファイルをアップロードしてみました。Dkeyは1111です。
http://www.dotup.org/uploda/www.dotup.org1351357.xlsx.html
9デフォルトの名無しさん (ワッチョイ fe6d-iRjW)
2017/08/27(日) 18:52:31.15ID:LjjEWylk010デフォルトの名無しさん (ワッチョイ ed6f-2x4P)
2017/08/27(日) 19:12:47.61ID:e4TdDFEN0 >>8
マクロを含むファイルは xlsm で保存しないとダメじゃね?
マクロを含むファイルは xlsm で保存しないとダメじゃね?
11デフォルトの名無しさん (アウアウカー Sa85-HXRX)
2017/08/27(日) 19:19:16.69ID:uEidIgYqa うむ。
xlsxで保存するとマクロが消えるよ。
xlsxで保存するとマクロが消えるよ。
12デフォルトの名無しさん (ワッチョイ 868f-vgeI)
2017/08/27(日) 20:15:32.32ID:HYoDzU2+013デフォルトの名無しさん (ワッチョイ 4a06-oKtA)
2017/08/27(日) 22:32:38.03ID:WmqrsSrM0 >>8
まず最初にエクスプローラーのツール→フォルダーオプションの
表示タブで”登録されている拡張子は表示しない”のチェック外せ。
んで、拡張子xlsxとxlsmの違いについてVBAのその入門書の最初から読んで
勉強し直せ
まず最初にエクスプローラーのツール→フォルダーオプションの
表示タブで”登録されている拡張子は表示しない”のチェック外せ。
んで、拡張子xlsxとxlsmの違いについてVBAのその入門書の最初から読んで
勉強し直せ
14デフォルトの名無しさん (ワッチョイ 392c-0bAf)
2017/08/27(日) 23:11:29.74ID:y/dGwO3j0 vbaってpcのスペック関係あるん?
オフィス2010の32ビットでメモリー4gで全てのシートの枠線を一括して色変えろってのをやってるけど
すぐ動作しなくなるんだよね、俺のマクロが可笑しく書いてるだけかな
オフィス2010の32ビットでメモリー4gで全てのシートの枠線を一括して色変えろってのをやってるけど
すぐ動作しなくなるんだよね、俺のマクロが可笑しく書いてるだけかな
15デフォルトの名無しさん (ワッチョイ fe6d-sGSh)
2017/08/27(日) 23:37:22.62ID:LjjEWylk016デフォルトの名無しさん (ワッチョイ a511-P7rv)
2017/08/27(日) 23:57:27.56ID:jYGHj9310 たしかに枠線の色はパンチ効いてそうだな、メモリ的に
17デフォルトの名無しさん (ワッチョイ fe6d-iRjW)
2017/08/28(月) 00:07:43.72ID:8e8g8cz+0 枠線じゃなくて罫線ね
色に関する機能はとにかく重い
色に関する機能はとにかく重い
18デフォルトの名無しさん (ワッチョイ 293d-oKtA)
2017/08/28(月) 00:21:31.22ID:uF0tQjXI0 どのくらいの大きさのものか、どのくらいの処理から重いと言うのかにもよるけど、
>>14と変わらない環境で5000行50列を縦横別々の判定で罫線引いてセルの背景色を行毎に変えて重要項目に個別に色付けてって処理でも五秒もあれば完了するし、
実務に影響が出るほど遅いって事なら、たぶんUnionでセルをまとめずに一つ一つに処理が発生するような事してるのでは?
処理の順番や組み合わせ次第で装飾的な処理はかなり軽く出来るはず。
GPU並の応答速度をセルに要求するなら知らんけど。
>>14と変わらない環境で5000行50列を縦横別々の判定で罫線引いてセルの背景色を行毎に変えて重要項目に個別に色付けてって処理でも五秒もあれば完了するし、
実務に影響が出るほど遅いって事なら、たぶんUnionでセルをまとめずに一つ一つに処理が発生するような事してるのでは?
処理の順番や組み合わせ次第で装飾的な処理はかなり軽く出来るはず。
GPU並の応答速度をセルに要求するなら知らんけど。
19デフォルトの名無しさん (ワッチョイ 86aa-oTLP)
2017/08/28(月) 06:09:18.70ID:4ejthJEF0 銀行にはデータセンターがあって、機械で文字識別に失敗したものが、処理される
3人の職員が、画像を見ながら、金額を打ち込んで、3人とも同じなら合格
殴り書きの人がいるから。
これは、郵便局でも同じ
スレ違いだけど
3人の職員が、画像を見ながら、金額を打ち込んで、3人とも同じなら合格
殴り書きの人がいるから。
これは、郵便局でも同じ
スレ違いだけど
20デフォルトの名無しさん (ワッチョイ ed6f-2x4P)
2017/08/28(月) 17:53:40.80ID:pLim95Ou0 その銀行のシステムをExcelで作っているのでなければどうでもいいな
21デフォルトの名無しさん (ワッチョイ 6f06-X0kF)
2017/09/01(金) 18:17:33.81ID:aTcGbRyI0 点数 人数 名前
10 0
9
8 3 foo bar moge
7 5 piyo poo
…
こういう感じのn行×3列の表があります。
人数は、その点数を取った人数です。
10 0
9
8 3 foo bar moge
7 5 piyo poo
…
こういう感じのn行×3列の表があります。
人数は、その点数を取った人数です。
22デフォルトの名無しさん (ワッチョイ 6f06-X0kF)
2017/09/01(金) 18:23:17.66ID:aTcGbRyI0 すみません、途中で投稿してしまいました。
点数 人数 名前
10 0
9 1 hoge
8 4 foo bar moge
7 5 piyo poo…
6 9 …
…
こういう感じのn行×3列の表があります。
人数は、1列目の点数を取った人の数です。
人数を上から足していって、初めて10を超えた行より上の行の背景色を変える、ということは、
「条件付き書式」で可能でしょうか?
点数 人数 名前
10 0
9 1 hoge
8 4 foo bar moge
7 5 piyo poo…
6 9 …
…
こういう感じのn行×3列の表があります。
人数は、1列目の点数を取った人の数です。
人数を上から足していって、初めて10を超えた行より上の行の背景色を変える、ということは、
「条件付き書式」で可能でしょうか?
23デフォルトの名無しさん (ワッチョイ 333d-b8Mh)
2017/09/01(金) 18:36:17.67ID:phDteRqs024デフォルトの名無しさん (ワッチョイ ff11-BPzU)
2017/09/01(金) 18:46:07.83ID:A4rxsWGh0 >>22
人数の累積が10以上かどうかを示す列を追加したら
こんな感じで出来るんでない?
=OR(AND($D4=0, $D5=1), $D5=0)
D列が累積10以上かどうかの列
0なら10未満、1なら10以上
上の例は5行目に設定した条件付き書式
人数の累積が10以上かどうかを示す列を追加したら
こんな感じで出来るんでない?
=OR(AND($D4=0, $D5=1), $D5=0)
D列が累積10以上かどうかの列
0なら10未満、1なら10以上
上の例は5行目に設定した条件付き書式
25デフォルトの名無しさん (ワッチョイ 636f-X0kF)
2017/09/02(土) 10:23:46.50ID:1XOwz87o026デフォルトの名無しさん (ワッチョイ 43aa-k/3h)
2017/09/02(土) 10:28:20.75ID:m6EVfTkB0 Sub SetGUID()
'On Error GoTo Err_Check:
Dim ref As Reference
End Sub
でコンパイルエラーが出ました。Referenceをで意義してなとのことです。
Referenceをインポートしなければいけないのでしょうか?
'On Error GoTo Err_Check:
Dim ref As Reference
End Sub
でコンパイルエラーが出ました。Referenceをで意義してなとのことです。
Referenceをインポートしなければいけないのでしょうか?
27デフォルトの名無しさん (ワッチョイ 636f-X0kF)
2017/09/02(土) 11:21:10.40ID:1XOwz87o0 reference型は存在しない
28デフォルトの名無しさん (ワッチョイ 43aa-k/3h)
2017/09/02(土) 11:56:02.84ID:m6EVfTkB0 ありがとうございます。
29デフォルトの名無しさん (アウアウカー Sa07-darD)
2017/09/02(土) 14:35:26.83ID:SpCYKXrKa3022 (ワッチョイ cfd3-X0kF)
2017/09/02(土) 18:32:32.23ID:JEC7rQdw0 皆様ありがとうございます。
累積人数の作業列を用意するやり方でできました。
累積人数の作業列を用意するやり方でできました。
3128 (アウアウカー Sa07-darD)
2017/09/02(土) 21:49:19.26ID:BeXWDCQaa32デフォルトの名無しさん (ワッチョイ ff11-BPzU)
2017/09/02(土) 22:25:34.44ID:9PaYDv7F0 >>31
それってスケールしなくない?
それってスケールしなくない?
33デフォルトの名無しさん (ワッチョイ a38f-6h2J)
2017/09/02(土) 22:28:15.89ID:kdjl/egy0 苦いもんな
34デフォルトの名無しさん (ワッチョイ 636f-X0kF)
2017/09/03(日) 03:52:33.65ID:gP322rFm0 それはケール
35デフォルトの名無しさん (ワッチョイ 53db-6h2J)
2017/09/06(水) 01:23:13.87ID:QcvNAHMq0 ExcelではなくPowerPointのVBAになるのですが、該当するスレがないので質問させてください。
PowerPointのpptxにmsoEmbeddedOLEObjectの形で埋め込まれているエクセルファイル(xls,xlsx両方あり)を、
マクロを使って連続的に(複数埋められている)取り出し、別ファイルに保存したいと考えています。
(大本のファイルの破損のため、埋め込みファイルから復元する必要がある)
zipに拡張子変更して解凍、とすれば取れるのは知っているのですが、ファイル名の対応が取れなくなるため、
マクロ上で番号を付けて保存するのが目的です。
大まかにこのような形になるはず、と、抜き出し直前までの処理を作ったのですが、実際の保存処理について、
いろいろ試したのですがうまくいきませんでした。
PowerPoint上でのVBAマクロはニッチすぎてググっても情報に出くわさず、ましてやデータの抜き出しのような
ものはさらに見当たらない状態で、詰んでしまいました。
どのようにすれば保存できるか、ご教授願えますでしょうか?
For Each oSld In ActivePresentation.Slides
For Each oShp In oSld.Shapes
Select Case oShp.Type
Case msoEmbeddedOLEObject
If (Left(oShp.OLEFormat.ProgID, 5) = "Excel") Then
'ここに処理を入れるはず
End If
End Select
Next
Next
PowerPointのpptxにmsoEmbeddedOLEObjectの形で埋め込まれているエクセルファイル(xls,xlsx両方あり)を、
マクロを使って連続的に(複数埋められている)取り出し、別ファイルに保存したいと考えています。
(大本のファイルの破損のため、埋め込みファイルから復元する必要がある)
zipに拡張子変更して解凍、とすれば取れるのは知っているのですが、ファイル名の対応が取れなくなるため、
マクロ上で番号を付けて保存するのが目的です。
大まかにこのような形になるはず、と、抜き出し直前までの処理を作ったのですが、実際の保存処理について、
いろいろ試したのですがうまくいきませんでした。
PowerPoint上でのVBAマクロはニッチすぎてググっても情報に出くわさず、ましてやデータの抜き出しのような
ものはさらに見当たらない状態で、詰んでしまいました。
どのようにすれば保存できるか、ご教授願えますでしょうか?
For Each oSld In ActivePresentation.Slides
For Each oShp In oSld.Shapes
Select Case oShp.Type
Case msoEmbeddedOLEObject
If (Left(oShp.OLEFormat.ProgID, 5) = "Excel") Then
'ここに処理を入れるはず
End If
End Select
Next
Next
36デフォルトの名無しさん (ワッチョイ ff11-BPzU)
2017/09/06(水) 01:53:39.78ID:x6m+UIsj0 >>35
SaveAsやSaveCopyAsで動かないってことなのかな?
PowerPoint/Excelのバージョンやうまく行かなかった方法とエラー内容書かないとわからないね
正攻法でダメなら新しいExcelブックを作ってコンテンツコピーして保存するとか
SaveAsやSaveCopyAsで動かないってことなのかな?
PowerPoint/Excelのバージョンやうまく行かなかった方法とエラー内容書かないとわからないね
正攻法でダメなら新しいExcelブックを作ってコンテンツコピーして保存するとか
37デフォルトの名無しさん (ワッチョイ 43e3-3QX8)
2017/09/06(水) 11:39:49.13ID:12U08c7K0 エクセルVBAの課題ですがコードがわかりません。教えてください
下記がコードになります。
参考書の該当構文はInStrRev関数を使う事になるのですが半角スペースを指定する方法がわかりません
Dim temp As String
Dim pos As Long
Dim vName As String
Dim i As Long
For i = 2 To 6
temp = Cells(i, 2).Value
'半角スペースの位置をInStrRev関数を使用して取得し、変数posに代入する
'「氏名」から「名」のみを取得して変数vNameに代入する
Debug.Print vName
Next
考えたコードは下記でシングルクォテーションの間にスペースを入れればスペースを検索できるかと思ったのですが
エラーになりました。
pos = InStrReV(VPath," ")
ちなみに、B列に氏名、C列にフリガナが入力されています。
下記がコードになります。
参考書の該当構文はInStrRev関数を使う事になるのですが半角スペースを指定する方法がわかりません
Dim temp As String
Dim pos As Long
Dim vName As String
Dim i As Long
For i = 2 To 6
temp = Cells(i, 2).Value
'半角スペースの位置をInStrRev関数を使用して取得し、変数posに代入する
'「氏名」から「名」のみを取得して変数vNameに代入する
Debug.Print vName
Next
考えたコードは下記でシングルクォテーションの間にスペースを入れればスペースを検索できるかと思ったのですが
エラーになりました。
pos = InStrReV(VPath," ")
ちなみに、B列に氏名、C列にフリガナが入力されています。
3828 (アウアウカー Sa07-darD)
2017/09/06(水) 14:58:34.88ID:8y9+dC+fa39デフォルトの名無しさん (ワッチョイ 7373-sC3k)
2017/09/06(水) 15:14:58.67ID:oWb3celv0 ついでに言うと、そもそもvって何よw
stringなのに。
stringなのに。
4028 (アウアウカー Sa07-darD)
2017/09/06(水) 18:33:42.98ID:8y9+dC+fa >>35
PC開ける場所が無いから駅のホームで開けたったわ。
さて、PowerPointでやってみようとしたらマクロの記録って無いんだな。
どうせ、オブジェクトの埋め込みって他でも似たようなもんだろと思ってWordで埋め込みを記録してみた。
で、出来たコード見てPowerPointでも同じようにいけそうと見当を付けてからWord上で今度は埋め込まれたExcelオブジェクトを右クリックメニューから開くのを記録しようと思ったらメニュー表示されなくて記録出来なかった。
で、記録は出来なかったけどWordでも同じようにいけそうと分かったのでWordで埋め込みオブジェクトについてググったら下記が見つかった。
https://support.microsoft.com/ja-jp/help/408493
これを参考に下記の真ん中の文でいける思って実行してみたらブックは出来てたけど開くとシートが表示されない。
表示リボンの再表示ボタン押したら表示されたんで、保存前に表示しとけば良いのかと思って再表示処理のコードをPowerPointにあわせて修正したのが最初の文。
それからシートが表示されてないブックをVBEのプロジェクトエクスプローラで見ると他のブックも表示されてる。
PowerPointに張り付けたExcelオブジェクトは複数で、それらが開いたまま保存すると参照も保存されるようなので保存後に閉じる最後の文の処理を追加して他への影響を回避した。
(開いて保存を繰り返すと後の保存では前に開いて保存後に開いたままになってるのが影響する)
'hogeの後、連番のファイル名で保存
oShp.OLEFormat.Object.Windows(1).Visible = True
oShp.OLEFormat.Object.SaveAs "C:\Users\hoge\Desktop\hoge" & CStr(i) & ".xlsx"
oShp.OLEFormat.Object.Windows(1).Close
i = i + 1
PC開ける場所が無いから駅のホームで開けたったわ。
さて、PowerPointでやってみようとしたらマクロの記録って無いんだな。
どうせ、オブジェクトの埋め込みって他でも似たようなもんだろと思ってWordで埋め込みを記録してみた。
で、出来たコード見てPowerPointでも同じようにいけそうと見当を付けてからWord上で今度は埋め込まれたExcelオブジェクトを右クリックメニューから開くのを記録しようと思ったらメニュー表示されなくて記録出来なかった。
で、記録は出来なかったけどWordでも同じようにいけそうと分かったのでWordで埋め込みオブジェクトについてググったら下記が見つかった。
https://support.microsoft.com/ja-jp/help/408493
これを参考に下記の真ん中の文でいける思って実行してみたらブックは出来てたけど開くとシートが表示されない。
表示リボンの再表示ボタン押したら表示されたんで、保存前に表示しとけば良いのかと思って再表示処理のコードをPowerPointにあわせて修正したのが最初の文。
それからシートが表示されてないブックをVBEのプロジェクトエクスプローラで見ると他のブックも表示されてる。
PowerPointに張り付けたExcelオブジェクトは複数で、それらが開いたまま保存すると参照も保存されるようなので保存後に閉じる最後の文の処理を追加して他への影響を回避した。
(開いて保存を繰り返すと後の保存では前に開いて保存後に開いたままになってるのが影響する)
'hogeの後、連番のファイル名で保存
oShp.OLEFormat.Object.Windows(1).Visible = True
oShp.OLEFormat.Object.SaveAs "C:\Users\hoge\Desktop\hoge" & CStr(i) & ".xlsx"
oShp.OLEFormat.Object.Windows(1).Close
i = i + 1
4137 (ワッチョイ dbe3-otRg)
2017/09/07(木) 09:48:18.13ID:YyZpQ4AD0 38できました。ありがとうございます。
サンプルコードコピペで何となく打ってたので変数が違ってました。
それ以外の変数は課題の変数名なので、なぜといわれても。
VBAもなかなか難しい
サンプルコードコピペで何となく打ってたので変数が違ってました。
それ以外の変数は課題の変数名なので、なぜといわれても。
VBAもなかなか難しい
42デフォルトの名無しさん (ササクッテロラ Sp3b-r1nS)
2017/09/07(木) 16:44:12.32ID:wb4fzXuzp どなたかご存知でしたらご教示ください
ADODBのレコードセットから特定のフィールドを削除するにはどうしたら良いのでしょうか
Set rs = cn.Execute(select * from foo)
rs.Close
rs.Fields.Delete(n)
rs.Open
レコードセットが開いていると Delete メソッドがエラーになるので、いったん Close してから Delete するのですが、再度 Open したときに削除したはずのフィールドが復活してしまいます
ADODBのレコードセットから特定のフィールドを削除するにはどうしたら良いのでしょうか
Set rs = cn.Execute(select * from foo)
rs.Close
rs.Fields.Delete(n)
rs.Open
レコードセットが開いていると Delete メソッドがエラーになるので、いったん Close してから Delete するのですが、再度 Open したときに削除したはずのフィールドが復活してしまいます
43デフォルトの名無しさん (ササクッテロ Sp3b-xWDE)
2017/09/07(木) 20:34:42.24ID:ddaTRsKCp 起動済みのインターネットエクスプローラを操作する上手い方法ありますか?
44デフォルトの名無しさん (ワッチョイ b66d-AjbO)
2017/09/07(木) 20:45:36.76ID:m3E2HFS70 キーボードマクロ
45デフォルトの名無しさん (ワッチョイ f66f-xkdj)
2017/09/07(木) 21:03:02.57ID:tDqTIin20 そら、Recordset 消してるだけだしな 毎回Recordset 消してどうしたいねん っていう
Save せんでええのんか っていう
Save せんでええのんか っていう
46デフォルトの名無しさん (ワッチョイ 1a06-QyhX)
2017/09/07(木) 22:52:40.38ID:vmFU5V5h0 select * なんてせずに使いたい行だけselect するってのはダメなんかい
47デフォルトの名無しさん (ワッチョイ 1a06-QyhX)
2017/09/07(木) 22:53:51.32ID:vmFU5V5h0 あっ、行じゃなくフィールドね
48デフォルトの名無しさん (アークセー Sx3b-zX58)
2017/09/07(木) 22:58:55.63ID:D42mXrqtx >>42
選べよw
選べよw
49デフォルトの名無しさん (ササクッテロラ Sp3b-r1nS)
2017/09/07(木) 23:53:31.42ID:wb4fzXuzp50デフォルトの名無しさん (ドコグロ MM92-34gH)
2017/09/08(金) 08:13:46.68ID:lYRgyUUIM 削除クエリー走らせるとか
51デフォルトの名無しさん (ワッチョイ e36f-xkdj)
2017/09/08(金) 09:31:09.93ID:+Trj8D4m0 >>43
マウスを動かしてクリック
マウスを動かしてクリック
52デフォルトの名無しさん (ワッチョイ e36f-xkdj)
2017/09/08(金) 09:37:36.00ID:+Trj8D4m053デフォルトの名無しさん (ササクッテロレ Sp3b-r1nS)
2017/09/08(金) 11:23:59.37ID:E+LN5uAqp >>52
レコードセットから列を削除したいのです
やりたいことはこんな感じです
'1.クエリの実行
Set rs = cn.Execute("select A,B,C from foo")
'2.レコードセットから列Bを削除する
rs.Fields.Delete("B")
'3.残った列A,CをA1セル起点に貼り付ける
Range("A1").CopyFromRecordset rs
このとき、Fields.Delete メソッドはレコードセットが開いているとエラーになってしまいます
なので、>>42のように前後にClose、Openで挟んだのですが、Open実行時に削除したはずの列が復活してしまいます
レコードセットから列を削除したいのです
やりたいことはこんな感じです
'1.クエリの実行
Set rs = cn.Execute("select A,B,C from foo")
'2.レコードセットから列Bを削除する
rs.Fields.Delete("B")
'3.残った列A,CをA1セル起点に貼り付ける
Range("A1").CopyFromRecordset rs
このとき、Fields.Delete メソッドはレコードセットが開いているとエラーになってしまいます
なので、>>42のように前後にClose、Openで挟んだのですが、Open実行時に削除したはずの列が復活してしまいます
54デフォルトの名無しさん (ドコグロ MMcb-Qch9)
2017/09/08(金) 12:48:46.68ID:w53+SGPnM5528 (アウアウカー Sa43-G+Vk)
2017/09/08(金) 12:57:54.99ID:pmDC3Jkna56デフォルトの名無しさん (アークセー Sx3b-zX58)
2017/09/08(金) 15:26:46.89ID:ryF3+zd7x57デフォルトの名無しさん (ワッチョイ e36f-xkdj)
2017/09/08(金) 18:09:07.35ID:+Trj8D4m0 >>53
3貼り付けがAとCだけにすれば2は要らないのでは?
3貼り付けがAとCだけにすれば2は要らないのでは?
58デフォルトの名無しさん (ワッチョイ 17e4-60Gy)
2017/09/08(金) 18:32:11.80ID:iUs2XBft0 初めからBをselectしなければ良いだけだけど、それが無理なら
張りつけてからB列消せば良いんじゃね
張りつけてからB列消せば良いんじゃね
59デフォルトの名無しさん (ワッチョイ 9aaa-x/0H)
2017/09/08(金) 20:18:25.34ID:v/BetMU00 select A,C,B のほうがよさげ
60デフォルトの名無しさん (ワッチョイ b754-34gH)
2017/09/08(金) 21:03:05.17ID:ltI+C5Vk0 rsからrs2を作る
61デフォルトの名無しさん (ドコグロ MMba-Qch9)
2017/09/08(金) 21:20:35.90ID:hXO+Cn8GM6242 (ササクッテロレ Sp3b-r1nS)
2017/09/08(金) 23:59:54.71ID:E+LN5uAqp みなさんレスありがとうございます
>>55
やっぱりそうするしかないのでしょうかね
いったん配列に落とすとセルに貼り付けた時データ型やレコード数なども気にしなきゃならなくなるので、できればレコードセットのままなんとかしたいのですが…
>>57
そうなんだろうけど、CopyFromRecordsetだと全フィールド張り付いてしまいます
ループで1セルずつ貼り付けて行くと、>>55の言うような「泥臭い方法」と変わらなくなってしまいます
>>58
なるほど、レコードセットでどうにかできなければそれが一番いい方法かもしれません
>>60
それも考えましたが、rs2に複製の際にエラーが出てしまいました
今は手元に環境がないので、エラーの内容についてはまたの機会にします
>>61
SQLは select * になるかもしれないし、予想がつきません
>>55
やっぱりそうするしかないのでしょうかね
いったん配列に落とすとセルに貼り付けた時データ型やレコード数なども気にしなきゃならなくなるので、できればレコードセットのままなんとかしたいのですが…
>>57
そうなんだろうけど、CopyFromRecordsetだと全フィールド張り付いてしまいます
ループで1セルずつ貼り付けて行くと、>>55の言うような「泥臭い方法」と変わらなくなってしまいます
>>58
なるほど、レコードセットでどうにかできなければそれが一番いい方法かもしれません
>>60
それも考えましたが、rs2に複製の際にエラーが出てしまいました
今は手元に環境がないので、エラーの内容についてはまたの機会にします
>>61
SQLは select * になるかもしれないし、予想がつきません
63デフォルトの名無しさん (ワッチョイ 17e4-60Gy)
2017/09/09(土) 01:05:27.10ID:Nbl3ImVw0 どういうSQLが来るかも分からないのに特定の列を消す必要があるという事だけは分かるのか
64デフォルトの名無しさん (ワッチョイ b62a-nhGI)
2017/09/09(土) 01:14:41.31ID:F1q2327A0■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【中国外務省】日中関係悪化は高市氏に責任と名指しで非難… [BFU★]
- 【中国外務省】日中関係悪化は高市氏に責任と名指しで非難… ★2 [BFU★]
- 外務省局長は無言で厳しい表情…日中の高官協議終了か 高市首相“台湾”発言で中国が強硬対応 発言撤回求めたか…★2 [BFU★]
- 小野田紀美・経済安保担当相「何か気に入らないことがあればすぐに経済的威圧をする国への依存はリスク」 [Hitzeschleier★]
- 政府、株式の配当など金融所得を高齢者の医療保険料や窓口負担に反映する方針を固めた [バイト歴50年★]
- 【維新】吉村知事「中国人観光客だけに頼るビジネスモデル変えていかないといけない」「高市総理の発言は撤回する必要はない」 [Hitzeschleier★]
- 中国高官と話す外務省局長の表情、やばい [175344491]
- 【悲報】ジャップ、どうやら中国が一方的に戦争仕掛けてくると思ってる模様😰 [616817505]
- 小野田経済安保相「すぐに経済的威圧するところへの依存はリスク」😲 [861717324]
- 中国外務省「日中関係の悪化は高市早苗首相が原因」と名指しで強く非難。キタ━(゚∀゚)━! [153490809]
- 【高市速報】明日から中国からの輸入が停止すれば2ヵ月で国内の生産業に53兆円の損失発生 [931948549]
- 日本政府「高市総理の発言は問題ないと伝え、中国総領事のSNS投稿は問題があると中国に伝えました😊」 [931948549]
