!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
探検
Excel VBA 質問スレ Part69
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 3fad-qZ/b)
2020/12/13(日) 00:22:23.67ID:Fd224klc0195デフォルトの名無しさん (ドコグロ MM0a-kmZN)
2021/01/07(木) 12:14:22.04ID:lqyAMCWOM Timerで1秒以内の2回目は止めたら
196デフォルトの名無しさん (スッップ Sd62-Te9A)
2021/01/07(木) 13:06:20.76ID:LEN4uLCLd for eachでフィルターがかけられた列をコレクションし、現在のセルと一つ下のセルの値を比較しようと思ったのですが、offsetだと隠れた行の数値が参照されてしまいます。
フィルタリングして可視状態の一つ下のセルを参照するには、どうすればよいのでしょうか。
フィルタリングして可視状態の一つ下のセルを参照するには、どうすればよいのでしょうか。
197デフォルトの名無しさん (ラクッペペ MM26-9Wmm)
2021/01/07(木) 15:55:15.71ID:JVCs6nJOM 無理だな
一つ上のを覚えといて比較しな
一つ上のを覚えといて比較しな
198デフォルトの名無しさん (ドコグロ MM0a-kmZN)
2021/01/07(木) 17:04:40.85ID:lqyAMCWOM 該当セルから下方向に、
VidibleがTrueなセルに当たるまで探せば
VidibleがTrueなセルに当たるまで探せば
199デフォルトの名無しさん (ワッチョイ ad7c-Fu3+)
2021/01/07(木) 20:16:51.59ID:GNpPPMMj0 >>194
マウス離した時に実行するのがExcelに限らず一般的な動作だと思うが
マウス離した時に実行するのがExcelに限らず一般的な動作だと思うが
200デフォルトの名無しさん (ワッチョイ 81da-I5PR)
2021/01/07(木) 23:26:20.22ID:q8h4Rq+X0 確かに
↓\→ 弱ボタン離す、でも波動拳出るな
↓\→ 弱ボタン離す、でも波動拳出るな
201デフォルトの名無しさん (ワッチョイ e501-LsAn)
2021/01/07(木) 23:51:53.97ID:CAJlIzxl0 はどうけんてなんですか
202デフォルトの名無しさん (ワッチョイ ad7c-Fu3+)
2021/01/07(木) 23:59:30.52ID:GNpPPMMj0 イギリスのロックバンドのことです
203デフォルトの名無しさん (アウアウウー Saa3-AlJ8)
2021/01/08(金) 07:36:54.65ID:/1SPkI99a 行とか列のデータのある範囲を選択するメソッドありますか?
currentregionの1行だけみたいなイメージで
今思いつくのは無理くり
Range("C5").CurrentRegion.Offset(略).Resize(略〜
ないしは
Endとかで割り出してから選択する
とかなんですが
なんかもう少しスマートな書き方があれば知りたいです
currentregionの1行だけみたいなイメージで
今思いつくのは無理くり
Range("C5").CurrentRegion.Offset(略).Resize(略〜
ないしは
Endとかで割り出してから選択する
とかなんですが
なんかもう少しスマートな書き方があれば知りたいです
204デフォルトの名無しさん (アウアウウー Saa3-AlJ8)
2021/01/08(金) 07:38:15.90ID:/1SPkI99a205デフォルトの名無しさん (ブーイモ MM0f-vU+B)
2021/01/08(金) 08:45:53.52ID:F7dsXzNTM columnsとかrowsプロパティで範囲から希望の列や行を取り出すじゃ駄目なの?
206デフォルトの名無しさん (アウアウウー Saa3-AlJ8)
2021/01/08(金) 09:53:03.11ID:/1SPkI99a >>205
いや、rowsだと行全体が選ばれてしまうので
例えば
1行目は4列
2行目は5列
とデータの入っている列数がバラバラな場合
(値は全て入っているものとして)
それぞれ4列とか5列分ぴったりに選ぶメソッドは無いものかと
C列基準とかで選べたら一番いいけど
A1選んで「ctrl+shift+→」と同じ結果でもいいです
いや、rowsだと行全体が選ばれてしまうので
例えば
1行目は4列
2行目は5列
とデータの入っている列数がバラバラな場合
(値は全て入っているものとして)
それぞれ4列とか5列分ぴったりに選ぶメソッドは無いものかと
C列基準とかで選べたら一番いいけど
A1選んで「ctrl+shift+→」と同じ結果でもいいです
207デフォルトの名無しさん (アウアウウー Saa3-AlJ8)
2021/01/08(金) 10:06:49.06ID:/1SPkI99a208デフォルトの名無しさん (JP 0H03-Cwx9)
2021/01/08(金) 10:12:04.47ID:0GZaxWieH209デフォルトの名無しさん (アウアウウー Saa3-AlJ8)
2021/01/08(金) 10:18:16.84ID:/1SPkI99a >>208
ありがとうございます
やっぱり1発ではないんですね
自分が書いたspecialcellも定数と数式とが混在してると
やはりUnionで繋ぐなどしかないので
煩雑になるなあと思っていたので
その書き方の方が良さそうですね
ありがとうございます
やっぱり1発ではないんですね
自分が書いたspecialcellも定数と数式とが混在してると
やはりUnionで繋ぐなどしかないので
煩雑になるなあと思っていたので
その書き方の方が良さそうですね
210デフォルトの名無しさん (ワッチョイ dfda-AFO5)
2021/01/09(土) 19:33:14.89ID:tpxthpMW0 Dirコマンド、
コマンドプロンプトに直書きだとローカルもネットワークも取れるのに、
VBAからWSHで取ると、ローカルしか取れないのは何故?
コマンドプロンプトに直書きだとローカルもネットワークも取れるのに、
VBAからWSHで取ると、ローカルしか取れないのは何故?
211デフォルトの名無しさん (アウアウウー Saa3-IUbu)
2021/01/09(土) 22:38:35.27ID:sDO7vtGda 理由は知らないけど、コマンドプロンプトのDIRコマンドと、VBAのDir関数は別物です
212デフォルトの名無しさん (アウアウウー Saa3-IUbu)
2021/01/09(土) 22:40:13.80ID:sDO7vtGda あ、失礼いたしました
VBAのDirでなく、スクリプト経由なのか
1つ前のレスは撤回します
VBAのDirでなく、スクリプト経由なのか
1つ前のレスは撤回します
213デフォルトの名無しさん (ワッチョイ 7f2f-9hkR)
2021/01/10(日) 01:05:09.81ID:kg6XuktW0214デフォルトの名無しさん (ワッチョイ dfda-AFO5)
2021/01/10(日) 01:13:14.86ID:4Xu9louP0 >>213
これそのまま
http://officetanaka.net/excel/vba/tips/tips27.htm
sCmd = "dir [ローカル]" だとOKで、
sCmd = "dir [ネットワーク]" だと取れない
Len(Result)で調べると0文字になってる
コマンドプロンプトでやると取れるから、打ち間違いじゃないと思うんだけど
これそのまま
http://officetanaka.net/excel/vba/tips/tips27.htm
sCmd = "dir [ローカル]" だとOKで、
sCmd = "dir [ネットワーク]" だと取れない
Len(Result)で調べると0文字になってる
コマンドプロンプトでやると取れるから、打ち間違いじゃないと思うんだけど
215デフォルトの名無しさん (JP 0H03-Cwx9)
2021/01/10(日) 01:40:53.81ID:bwHYpHvWH216デフォルトの名無しさん (ワッチョイ ff8e-ZaM3)
2021/01/10(日) 02:36:39.33ID:CEBDD+E50217デフォルトの名無しさん (ワッチョイ dfda-9hkR)
2021/01/10(日) 08:23:59.20ID:4Xu9louP0 >>215
確認した
\\ネットワークにChr(34)入れて"\\ネットワーク"にしてもダメ
(↑半角だと書き込めない)
確認した
\\ネットワークにChr(34)入れて"\\ネットワーク"にしてもダメ
(↑半角だと書き込めない)
218デフォルトの名無しさん (ワッチョイ 7f2f-9hkR)
2021/01/10(日) 08:51:06.81ID:kg6XuktW0 >>214
[ネットワーク]の指定方法正しいか?
\\サーバ\共有名 でないと、\\サーバ だけではだめだぞ
手元で試したけど、うちではUNCパスでもネットワークドライブでもちゃんと動いた
ただし、パスワードは事前に保存済み
パスワード保存してないリソースはテストしてない
[ネットワーク]の指定方法正しいか?
\\サーバ\共有名 でないと、\\サーバ だけではだめだぞ
手元で試したけど、うちではUNCパスでもネットワークドライブでもちゃんと動いた
ただし、パスワードは事前に保存済み
パスワード保存してないリソースはテストしてない
219デフォルトの名無しさん (ワッチョイ 5f5f-5vFt)
2021/01/10(日) 09:02:01.60ID:qJ1NhQml0 ネットワークパス使ってファイルアクセス可能かまず調べる
220デフォルトの名無しさん (ワッチョイ dfda-AFO5)
2021/01/10(日) 09:03:56.67ID:4Xu9louP0 >>218
\\サーバ\共有名って、\\サーバ\共有されてるフォルダ名?
それなら合ってる
ちなみに\\アドレスの数字\共有されてるフォルダ名ってのも試した
パスワードは、エクスプローラーから開くときにパスワード入れなくていい状態になってるから、
保存済だと思う
\\サーバ\共有名って、\\サーバ\共有されてるフォルダ名?
それなら合ってる
ちなみに\\アドレスの数字\共有されてるフォルダ名ってのも試した
パスワードは、エクスプローラーから開くときにパスワード入れなくていい状態になってるから、
保存済だと思う
221デフォルトの名無しさん (JP 0H03-Cwx9)
2021/01/10(日) 11:56:30.27ID:bwHYpHvWH うちではサンプルのままで問題なく共有フォルダのファイル一覧が出るからWSHのせいではないと思う
エラーコードやエラーメッセージは何も出てない?
Windowsのシェルを置き換えるとか、何かマニアックなカスタマイズしてる?
エラーコードやエラーメッセージは何も出てない?
Windowsのシェルを置き換えるとか、何かマニアックなカスタマイズしてる?
222デフォルトの名無しさん (ワッチョイ dfda-AFO5)
2021/01/10(日) 12:45:12.99ID:4Xu9louP0223デフォルトの名無しさん (JP 0H03-Cwx9)
2021/01/10(日) 14:01:53.42ID:bwHYpHvWH >>222
ホスト側のOSはWindows?双方にSMBは間違いなくフルセットで入れてある?
ホスト側のOSはWindows?双方にSMBは間違いなくフルセットで入れてある?
224デフォルトの名無しさん (ワッチョイ dfda-AFO5)
2021/01/10(日) 16:37:15.38ID:4Xu9louP0225デフォルトの名無しさん (ワッチョイ 7f2f-9hkR)
2021/01/10(日) 17:55:38.15ID:kg6XuktW0 エラー(メッセージ)が出てないのはたぶん標準出力しかひらってないから
標準エラー出力になんか出てると思われ
標準エラー出力になんか出てると思われ
226デフォルトの名無しさん (ワッチョイ 7f2f-9hkR)
2021/01/10(日) 18:05:33.95ID:kg6XuktW0 つかここまでしてわざわざDirコマンド使う必要あるのか
何がやりたいんだ
何がやりたいんだ
227デフォルトの名無しさん (ワッチョイ dfda-AFO5)
2021/01/10(日) 20:17:18.14ID:4Xu9louP0 >>226
サーバーの空き容量調べたいだけなんだけどね
方法は他にもあるけど、いちいちドライブ文字設定しなきゃいけないとか、
何かアドインみたいなの入れなきゃいけないとかあるし
Dirコマンドが一番シンプルだし、
batでテキスト出力するのは問題なくできるから、
それを直接変数に入れられないかなと思ったんだけど
サーバーの空き容量調べたいだけなんだけどね
方法は他にもあるけど、いちいちドライブ文字設定しなきゃいけないとか、
何かアドインみたいなの入れなきゃいけないとかあるし
Dirコマンドが一番シンプルだし、
batでテキスト出力するのは問題なくできるから、
それを直接変数に入れられないかなと思ったんだけど
228デフォルトの名無しさん (ワッチョイ 7f2f-9hkR)
2021/01/10(日) 20:39:03.57ID:kg6XuktW0 >>227
WSHつかうならDriveオブジェクトがUNCパスいけるっぽいけど
https://docs.microsoft.com/ja-jp/office/vba/language/reference/user-interface-help/drive-object
WSHつかうならDriveオブジェクトがUNCパスいけるっぽいけど
https://docs.microsoft.com/ja-jp/office/vba/language/reference/user-interface-help/drive-object
229デフォルトの名無しさん (ワッチョイ ff8e-ZaM3)
2021/01/10(日) 23:21:47.74ID:CEBDD+E50 馬鹿が聞いて馬鹿が答えるスレ
230デフォルトの名無しさん (ワッチョイ 5fda-lB9F)
2021/01/10(日) 23:32:18.31ID:LL6dwzdY0 >>229
お前は馬鹿馬鹿いうだけの馬鹿だな
お前は馬鹿馬鹿いうだけの馬鹿だな
231デフォルトの名無しさん (ワッチョイ 7fb5-tn8J)
2021/01/11(月) 22:06:06.53ID:pqPOJoG50 このスレでお世話になりまくった者だけど
金欲しさに工場部門の夜勤に今年から異動したからVBA触ることももうない
数年後間接部門に戻れるかわからんけど
いや戻れないだろうけど
スレの全員に感謝だわ
本当に色々教えてもらったし構文そのまま頂けた
本当にありがとう
金欲しさに工場部門の夜勤に今年から異動したからVBA触ることももうない
数年後間接部門に戻れるかわからんけど
いや戻れないだろうけど
スレの全員に感謝だわ
本当に色々教えてもらったし構文そのまま頂けた
本当にありがとう
232デフォルトの名無しさん (ワッチョイ dfda-Cwx9)
2021/01/11(月) 23:57:28.02ID:pfNMzUxK0 生産管理でまた使うことになったりして・・・
233デフォルトの名無しさん (ワッチョイ 5f01-pMv2)
2021/01/12(火) 01:59:02.62ID:OTa0Zw/f0 VBAに触らなくて良くなるだけで羨ましいわ
234デフォルトの名無しさん (ワッチョイ 5fda-lB9F)
2021/01/12(火) 19:01:11.25ID:dCVmoeOp0 >>231
製造現場になじめないで会社辞めるに1ガバチョ
製造現場になじめないで会社辞めるに1ガバチョ
235210 (ワッチョイ dfda-AFO5)
2021/01/13(水) 19:37:02.44ID:lspxZscb0 Dirコマンドの件で回答くれた皆さん
パスにUTF-8で文字化けする文字を含んでいたのが原因だったわ
しょうもないオチでごめんなさい&ありがとう
パスにUTF-8で文字化けする文字を含んでいたのが原因だったわ
しょうもないオチでごめんなさい&ありがとう
236デフォルトの名無しさん (JP 0H03-Cwx9)
2021/01/13(水) 20:54:16.63ID:aeNWg8u3H UTF-8からシフトJISに正しく変換できない文字かあ
葛飾区とか草薙とか色々あるよな
記号も〜とか¥とか半角スペースとかマイナスとか、よく使うのに化けるのがたくさんある
葛飾区とか草薙とか色々あるよな
記号も〜とか¥とか半角スペースとかマイナスとか、よく使うのに化けるのがたくさんある
237デフォルトの名無しさん (スッップ Sd9f-ZaM3)
2021/01/14(木) 02:22:27.50ID:JNzdWMyDd >>235
それを解決できない馬鹿が中途半端に書き込むなよ
それを解決できない馬鹿が中途半端に書き込むなよ
238デフォルトの名無しさん (ワッチョイ dfda-cu7a)
2021/01/14(木) 05:19:52.68ID:ecyWCD0F0 知恵袋よかこっちの方がよほど親身なのは住人が優しくてイイ人ばかりだからでつか?
239デフォルトの名無しさん (オッペケ Srb3-bwS7)
2021/01/14(木) 07:59:40.60ID:gDZI6jyWr =TEXT(ROUNDDOWN(a1,1-INT(LOG(a1))),IF(1-LOG(a1)>0,"0."&REPT(0,1-INT(LOG(a1))),"0"))
をVBAで記述するとどうなるのか教えて欲しいです。よろしくお願いします。
をVBAで記述するとどうなるのか教えて欲しいです。よろしくお願いします。
240デフォルトの名無しさん (ワッチョイ df11-ZT9E)
2021/01/14(木) 12:22:18.25ID:YIqcuI1O0 a = [TEXT(ROUNDDOWN(a1,1-INT(LOG(a1))),IF(1-LOG(a1)>0,"0."&REPT(0,1-INT(LOG(a1))),"0"))]
241デフォルトの名無しさん (JP 0H03-Cwx9)
2021/01/14(木) 12:56:03.99ID:YzBTA1U5H >>240で解決してたけど、一応正攻法みたいな物
Sub 有効数字2桁()
Dim A1 As Double
Dim L As Integer
Dim S As String
Dim F As String
A1 = Range("A1")
L = 1 - Int(Log(A1) / Log(10#))
If L > 0 Then
F = F & "." & String(L, "0")
Else
F = "0"
End If
S = Format(WorksheetFunction.RoundDown(A1, L), F)
Debug.Print S
End Sub
Sub 有効数字2桁()
Dim A1 As Double
Dim L As Integer
Dim S As String
Dim F As String
A1 = Range("A1")
L = 1 - Int(Log(A1) / Log(10#))
If L > 0 Then
F = F & "." & String(L, "0")
Else
F = "0"
End If
S = Format(WorksheetFunction.RoundDown(A1, L), F)
Debug.Print S
End Sub
242デフォルトの名無しさん (ワッチョイ dfda-AFO5)
2021/01/14(木) 18:59:26.33ID:+2NwXrek0243デフォルトの名無しさん (ワッチョイ df68-Cbw0)
2021/01/14(木) 20:01:26.65ID:SduAKFWs0 質問です。
シートモジュール内で、
Private Sub Worksheet_Change(ByVal Target As Range)
For Each test In Range("他シートにある名前付きセルの名前")
Next test
End Sub
これで実行時エラー”1004” ’Range’メソッドは失敗しました:WorkSheetオブジェクト が出てしまうのですが、原因は何でしょうか。
Publicを取ってみたり、シートを指定しみたりしたんですが、変化ありません。
標準モジュールに記述してF5で実行した場合はエラー発生しません。
宜しくお願い致します。
シートモジュール内で、
Private Sub Worksheet_Change(ByVal Target As Range)
For Each test In Range("他シートにある名前付きセルの名前")
Next test
End Sub
これで実行時エラー”1004” ’Range’メソッドは失敗しました:WorkSheetオブジェクト が出てしまうのですが、原因は何でしょうか。
Publicを取ってみたり、シートを指定しみたりしたんですが、変化ありません。
標準モジュールに記述してF5で実行した場合はエラー発生しません。
宜しくお願い致します。
244デフォルトの名無しさん (ワッチョイ 5f7c-lZna)
2021/01/14(木) 20:33:06.60ID:gxjpIPZs0 シートを指定する
名前の適用範囲を確認する
名前の適用範囲を確認する
245デフォルトの名無しさん (ワッチョイ df68-Cbw0)
2021/01/14(木) 20:38:30.13ID:SduAKFWs0 >244
名前の適用範囲を変えてみたりもしたんですが、だめでした。
名前の適用範囲を変えてみたりもしたんですが、だめでした。
246デフォルトの名無しさん (ワッチョイ df68-Cbw0)
2021/01/14(木) 20:52:33.18ID:SduAKFWs0247デフォルトの名無しさん (ワッチョイ 7f2f-9hkR)
2021/01/14(木) 20:55:12.26ID:yNTWs1ET0 >>243
In Rangeの範囲がそのシートだから、そこに名前付きセルはない
その範囲のあるシートがわかってるなら、In 他シート.Range("... のように指定するか
同一ブック内ならIn ThisWorkbook.Names("名前付きセルの名前").RefersToRange
とかでいけんじゃね
In Rangeの範囲がそのシートだから、そこに名前付きセルはない
その範囲のあるシートがわかってるなら、In 他シート.Range("... のように指定するか
同一ブック内ならIn ThisWorkbook.Names("名前付きセルの名前").RefersToRange
とかでいけんじゃね
248デフォルトの名無しさん (オッペケ Srd1-5Wwm)
2021/01/15(金) 07:45:14.16ID:fl9fRXksr249デフォルトの名無しさん (ワッチョイ cd10-9NFy)
2021/01/16(土) 04:08:04.09ID:wM/4uvwh0 @Set DB As CurrentDb
ASet DB As CurrentDb()
この二つに使い分ける意味はありますか?
ASet DB As CurrentDb()
この二つに使い分ける意味はありますか?
250デフォルトの名無しさん (ワッチョイ 8d7c-JESV)
2021/01/16(土) 10:41:53.52ID:MRodpgDG0 ないと思う
251デフォルトの名無しさん (ワッチョイ c501-Gfv6)
2021/01/16(土) 16:36:07.57ID:SaJeHrUX0 @はカッコつけたい時
Aはキーボード打つのめんどくさい時
Aはキーボード打つのめんどくさい時
252249 (ワッチョイ cd10-9NFy)
2021/01/16(土) 19:03:22.47ID:wM/4uvwh0253デフォルトの名無しさん (ワッチョイ 8d7c-JESV)
2021/01/16(土) 19:33:57.85ID:MRodpgDG0 同じではない
必要性を感じないというだけ
必要性を感じないというだけ
254デフォルトの名無しさん (ワッチョイ cd10-9NFy)
2021/01/16(土) 20:50:02.04ID:wM/4uvwh0 必要ないのを同じと表現したの
255デフォルトの名無しさん (ワッチョイ 317f-WsPm)
2021/01/16(土) 21:12:53.28ID:haZmUiAy0 >>253
使い分ける意味がないのに同じでないのはないってどういう意味?
使い分ける意味がないのに同じでないのはないってどういう意味?
256デフォルトの名無しさん (ワッチョイ 822f-vYIt)
2021/01/16(土) 21:22:36.09ID:BbkPLu/V0 ExcelのVBAにCurrentDbなんてないのは置いておくとしても
その文ってどっちもエラーになると思うんだが
その文ってどっちもエラーになると思うんだが
257デフォルトの名無しさん (ワッチョイ cd10-9NFy)
2021/01/16(土) 21:38:23.62ID:wM/4uvwh0 あ、すみません…
AccessVBAのスレってあったんですね。
申し訳ない。
あと1As」 って書いちゃってたけど「=」
AccessVBAのスレってあったんですね。
申し訳ない。
あと1As」 って書いちゃってたけど「=」
258デフォルトの名無しさん (ワッチョイ cd10-9NFy)
2021/01/16(土) 21:39:02.86ID:wM/4uvwh0 訂正
あと「As」って書いちゃってたけど当然「=」でした
あと「As」って書いちゃってたけど当然「=」でした
259デフォルトの名無しさん (ワッチョイ 822f-vYIt)
2021/01/16(土) 21:59:42.58ID:BbkPLu/V0 Accessで試したけどどっちも通って同じ結果だな
俺の予想では2はデフォルトプロパティの呼び出しになると思ったんだが
引数省略したら、かっこそのものも除去されて評価されてるのかもしれん
つかその教本ってなんだ?
俺の予想では2はデフォルトプロパティの呼び出しになると思ったんだが
引数省略したら、かっこそのものも除去されて評価されてるのかもしれん
つかその教本ってなんだ?
260デフォルトの名無しさん (ワッチョイ 822f-vYIt)
2021/01/16(土) 22:14:43.61ID:BbkPLu/V0 >>255
この例は同じ結果になってるけど、その二つはまったく同じではないよ
Accessで違いが出る例
Dim DB
Dim CurrentDb As Database
Set CurrentDb = Application.CurrentDb
Set DB = CurrentDb
MsgBox TypeName(DB)
Set DB = CurrentDb()
MsgBox TypeName(DB)
まあCurrentDbとかいう変数名は少なくともVBAではお勧めできないけどな
この例は同じ結果になってるけど、その二つはまったく同じではないよ
Accessで違いが出る例
Dim DB
Dim CurrentDb As Database
Set CurrentDb = Application.CurrentDb
Set DB = CurrentDb
MsgBox TypeName(DB)
Set DB = CurrentDb()
MsgBox TypeName(DB)
まあCurrentDbとかいう変数名は少なくともVBAではお勧めできないけどな
261デフォルトの名無しさん (ワッチョイ cd10-9NFy)
2021/01/16(土) 22:21:15.40ID:wM/4uvwh0 CurrentDb自体を変数にするとか、それはもう別の話では
262デフォルトの名無しさん (ワッチョイ 822f-vYIt)
2021/01/16(土) 23:00:55.60ID:BbkPLu/V0 前提を絞らなければ、動作に違いが出るかどうかの話だから別の話じゃない
変数名の良し悪しに関してはまあ別だが
つかその教本とやらを曝せ
俺的にはデータベースのインスタンスを取得する目的で後者の書き方とかなら、そっちのほうが問題だわ
変数名の良し悪しに関してはまあ別だが
つかその教本とやらを曝せ
俺的にはデータベースのインスタンスを取得する目的で後者の書き方とかなら、そっちのほうが問題だわ
263デフォルトの名無しさん (ワッチョイ cd10-9NFy)
2021/01/17(日) 05:07:21.78ID:Bpeq2DcA0 実際にはやらない無理な方法で無理矢理話を混ぜ返したいだけで、
そもそも意図を汲んでない
そもそも意図を汲んでない
264デフォルトの名無しさん (スップ Sd22-RONI)
2021/01/17(日) 18:18:57.16ID:6FyugFd+d 初心者です
オートシェイプの名前を検索して置換できるコードを教えてください
調べてもオートシェイプ内のテキスト変換しかありません
お願いします
オートシェイプの名前を検索して置換できるコードを教えてください
調べてもオートシェイプ内のテキスト変換しかありません
お願いします
265デフォルトの名無しさん (JP 0Hcd-sTIO)
2021/01/17(日) 20:37:25.77ID:EfLIE7TKH266デフォルトの名無しさん (ワッチョイ cd10-9NFy)
2021/01/17(日) 21:03:01.02ID:Bpeq2DcA0 それはすでに使ってるシェイプの名前だろう
使ってない奴から選びたいんだろう
使ってない奴から選びたいんだろう
267デフォルトの名無しさん (スップ Sd22-RONI)
2021/01/17(日) 21:25:06.25ID:6FyugFd+d >>265
返信ありがとうございます
下記のオートシェイプに入力されたテキストを検索して置換するコードじゃなくてオートシェイプの名前を検索して置換したいのですがどこを直せばいいのでしょうか
Sub 置換() Dim tbox As Object Dim findStr As String Dim replaceStr As String Dim count As Long Dim i As Long Dim myDocument As Worksheet findStr = InputBox("置換対象文字列") replaceStr = InputBox("置換文字") Set myDocument = Worksheets(1) myDocument.Shapes.SelectAll
For i = 1 To myDocument.Shapes.count If myDocument.Shapes(i).Type = msoGroup Then Selection.ShapeRange.Ungroup.Select For Each tbox In Selection.ShapeRange tbox.TextFrame.Characters.Text = _ Replace(tbox.TextFrame.Characters.Text, findStr, replaceStr)
Next Selection.ShapeRange.Regroup.Select Else
Set tbox = myDocument.Shapes(i).TextFrame tbox.Characters.Text = _ Replace(tbox.Characters.Text, findStr, replaceStr)
End If
Next
End Sub
返信ありがとうございます
下記のオートシェイプに入力されたテキストを検索して置換するコードじゃなくてオートシェイプの名前を検索して置換したいのですがどこを直せばいいのでしょうか
Sub 置換() Dim tbox As Object Dim findStr As String Dim replaceStr As String Dim count As Long Dim i As Long Dim myDocument As Worksheet findStr = InputBox("置換対象文字列") replaceStr = InputBox("置換文字") Set myDocument = Worksheets(1) myDocument.Shapes.SelectAll
For i = 1 To myDocument.Shapes.count If myDocument.Shapes(i).Type = msoGroup Then Selection.ShapeRange.Ungroup.Select For Each tbox In Selection.ShapeRange tbox.TextFrame.Characters.Text = _ Replace(tbox.TextFrame.Characters.Text, findStr, replaceStr)
Next Selection.ShapeRange.Regroup.Select Else
Set tbox = myDocument.Shapes(i).TextFrame tbox.Characters.Text = _ Replace(tbox.Characters.Text, findStr, replaceStr)
End If
Next
End Sub
268デフォルトの名無しさん (ワッチョイ 4602-sTIO)
2021/01/17(日) 21:32:27.18ID:sTdEmPzt0 聞く気ないだろw
269デフォルトの名無しさん (ワッチョイ cd10-9NFy)
2021/01/17(日) 22:02:29.00ID:Bpeq2DcA0 そのようだなw
270デフォルトの名無しさん (ワッチョイ 6e8e-gw59)
2021/01/17(日) 22:10:02.50ID:vD50J/Wf0 適当にコードをコピペして聞きだそうとする手口
質問です。よろしくお願いいたします。
VBA でスクレイピングを行っています
対象ページ:https://www.rakuten-sec.co.jp/web/market/data/rub.html ‥@
取得したい要素、 CSS セレクタで記載:document.querySelector("#cFx > table:nth-child(6) > tbody > tr:nth-child(1) > td.cell-02 > em").innerText ‥‥A
しかし、Aは google chrome では取得できて、しかもコンソールでAを指定した場合も目的の値を取得できていますが、
Aを IE11 ->F12 で表示できるコンソールに食わせても、目的の値を取得できません。
質問1:google chrome におけるページ@のCSSセレクタAは、IE11 ではどのようになるのでしょうか?‥‥B
質問2:IE11 でBを取得する方法はどのようなものでしょうか?
以上よろしくお願いいたします。
VBA でスクレイピングを行っています
対象ページ:https://www.rakuten-sec.co.jp/web/market/data/rub.html ‥@
取得したい要素、 CSS セレクタで記載:document.querySelector("#cFx > table:nth-child(6) > tbody > tr:nth-child(1) > td.cell-02 > em").innerText ‥‥A
しかし、Aは google chrome では取得できて、しかもコンソールでAを指定した場合も目的の値を取得できていますが、
Aを IE11 ->F12 で表示できるコンソールに食わせても、目的の値を取得できません。
質問1:google chrome におけるページ@のCSSセレクタAは、IE11 ではどのようになるのでしょうか?‥‥B
質問2:IE11 でBを取得する方法はどのようなものでしょうか?
以上よろしくお願いいたします。
272デフォルトの名無しさん (ドコグロ MMca-gKIs)
2021/01/17(日) 23:48:28.14ID:7Jg8yd50M >>267
いろいろと修正箇所が多いので
https://qiita.com/Umaremin/items/b7726fa7340c7f175e77
このサイトのコードの
4行目の後に
Dim findStr As String, replaceStr As String
findStr = InputBox("置換対象文字列")
replaceStr = InputBox("置換文字")
'各Shapeに対する処理の2箇所に
shp.Name = Replace(shp.Name, findStr, replaceStr)
を追加すればうまく出来ると思う
ちなみに、理由は知らないけどリボンのページレイアウトの中のオブジェクトと選択と表示のシェイプの名前を変えずにデフォルトのままだとVBAが出す名前が英語表記になるので注意
いろいろと修正箇所が多いので
https://qiita.com/Umaremin/items/b7726fa7340c7f175e77
このサイトのコードの
4行目の後に
Dim findStr As String, replaceStr As String
findStr = InputBox("置換対象文字列")
replaceStr = InputBox("置換文字")
'各Shapeに対する処理の2箇所に
shp.Name = Replace(shp.Name, findStr, replaceStr)
を追加すればうまく出来ると思う
ちなみに、理由は知らないけどリボンのページレイアウトの中のオブジェクトと選択と表示のシェイプの名前を変えずにデフォルトのままだとVBAが出す名前が英語表記になるので注意
273デフォルトの名無しさん (JP 0Hcd-sTIO)
2021/01/18(月) 02:58:44.09ID:pyrT8iNXH ちょっとソースを整理
Sub 置換()
Dim tbox As Object
Dim findStr As String
Dim replaceStr As String
Dim count As Long
Dim i As Long
Dim myDocument As Worksheet
findStr = InputBox("置換対象文字列")
replaceStr = InputBox("置換文字")
Set myDocument = Worksheets(1)
myDocument.Shapes.SelectAll
For i = 1 To myDocument.Shapes.count
If myDocument.Shapes(i).Type = msoGroup Then
Selection.ShapeRange.Ungroup.Select
For Each tbox In Selection.ShapeRange
tbox.TextFrame.Characters.Text = Replace(tbox.TextFrame.Characters.Text, findStr, replaceStr)
Next
Selection.ShapeRange.Regroup.Select
Else
Set tbox = myDocument.Shapes(i).TextFrame
tbox.Characters.Text = Replace(tbox.Characters.Text, findStr, replaceStr)
End If
Next
End Sub
Sub 置換()
Dim tbox As Object
Dim findStr As String
Dim replaceStr As String
Dim count As Long
Dim i As Long
Dim myDocument As Worksheet
findStr = InputBox("置換対象文字列")
replaceStr = InputBox("置換文字")
Set myDocument = Worksheets(1)
myDocument.Shapes.SelectAll
For i = 1 To myDocument.Shapes.count
If myDocument.Shapes(i).Type = msoGroup Then
Selection.ShapeRange.Ungroup.Select
For Each tbox In Selection.ShapeRange
tbox.TextFrame.Characters.Text = Replace(tbox.TextFrame.Characters.Text, findStr, replaceStr)
Next
Selection.ShapeRange.Regroup.Select
Else
Set tbox = myDocument.Shapes(i).TextFrame
tbox.Characters.Text = Replace(tbox.Characters.Text, findStr, replaceStr)
End If
Next
End Sub
274デフォルトの名無しさん (スップ Sd22-RONI)
2021/01/18(月) 06:51:20.31ID:hmFdo1dud275デフォルトの名無しさん (ワッチョイ 6e2c-vYIt)
2021/01/18(月) 12:58:34.46ID:JT9EgKXH0 >>271
漏れが、Ruby, Selenium WebDriver, Chrome でアクセスしたら、空要素が返ってきた
CSS の :nth-child() 擬似クラスは、
兄弟要素のグループの中での位置に基づいて選択します
https://developer.mozilla.org/ja/docs/Web/API/Document/querySelectorAll
Document.querySelectorAll()
elementList = parentNode.querySelectorAll(selectors);
指定された selectors が CSS 擬似要素を含む場合、返されるリストは常に空になります
エラーログ
"jQuery.Deferred exception: Cannot read
property 'msie' of undefined TypeError: Cannot read property 'msie' of undefined
at HTMLDocument.<anonymous> (https://www.rakuten-sec.co.jp/web/shared/js/app/jquery.share-button.js?20160125:5:415)
at l (https://www.rakuten-sec.co.jp/web/shared/js/jquery.js:2:29375)
at c (https://www.rakuten-sec.co.jp/web/shared/js/jquery.js:2:29677) undefined",
source: https://www.rakuten-sec.co.jp/web/shared/js/jquery.js (2)
ひょっとして、そのサイトがバグっているのかも?
それかログインなど、特別な認証が必要なのかも?
漏れが、Ruby, Selenium WebDriver, Chrome でアクセスしたら、空要素が返ってきた
CSS の :nth-child() 擬似クラスは、
兄弟要素のグループの中での位置に基づいて選択します
https://developer.mozilla.org/ja/docs/Web/API/Document/querySelectorAll
Document.querySelectorAll()
elementList = parentNode.querySelectorAll(selectors);
指定された selectors が CSS 擬似要素を含む場合、返されるリストは常に空になります
エラーログ
"jQuery.Deferred exception: Cannot read
property 'msie' of undefined TypeError: Cannot read property 'msie' of undefined
at HTMLDocument.<anonymous> (https://www.rakuten-sec.co.jp/web/shared/js/app/jquery.share-button.js?20160125:5:415)
at l (https://www.rakuten-sec.co.jp/web/shared/js/jquery.js:2:29375)
at c (https://www.rakuten-sec.co.jp/web/shared/js/jquery.js:2:29677) undefined",
source: https://www.rakuten-sec.co.jp/web/shared/js/jquery.js (2)
ひょっとして、そのサイトがバグっているのかも?
それかログインなど、特別な認証が必要なのかも?
276275 (ワッチョイ 6e2c-vYIt)
2021/01/18(月) 13:03:01.53ID:JT9EgKXH0 それか、
jquery.share-button.js
と書いてあるから、
jQuery で作った画面か何かの、ボタンをクリックするなどの、
人間による操作が必要なのかも?
jquery.share-button.js
と書いてあるから、
jQuery で作った画面か何かの、ボタンをクリックするなどの、
人間による操作が必要なのかも?
277デフォルトの名無しさん (アウアウウー Sa05-Gfv6)
2021/01/18(月) 13:14:48.80ID:ipljQC5/a まあでもVBA関係ないな
278275 (ワッチョイ 6e2c-vYIt)
2021/01/18(月) 13:39:24.37ID:JT9EgKXH0 そのサイト固有の問題かも。
それに、IE 11 はサポート切れで、多くのサイトで、まともに動かない
基本、Chrome しか動かない。
Chrome以外のブラウザは、まともに動かない
それに、IE 11 はサポート切れで、多くのサイトで、まともに動かない
基本、Chrome しか動かない。
Chrome以外のブラウザは、まともに動かない
>>275,276,278
検証いただきありがとうございます
なにぶん、単に株価等をスクレイピングするためだけに年始から web スクレイピングを始めたばかりなので、難しいことはよくわかりません‥‥
やっぱり HTML5/CSS の基礎本からじっくりやるしかないでしょうか
引き続き、なにかコメントがありましたらよろしくお願いいたします‥‥
>>277
VBA で
Dim objIE As InternetExplorer
Set objIE = New InternetExplorer
objIE.navigate ur
時間待ちl
Dim htmlDoc As HTMLDocument
Set htmlDoc = objIE.document
Dim elementText As String
elementText = htmlDoc.querySelector("#cFx > table:nth-child(6) > tbody > tr:nth-child(1) > td.cell-02 > em").innerText
と書いていますが、それでもやっぱり VBA は関係ないのでしょうか?
検証いただきありがとうございます
なにぶん、単に株価等をスクレイピングするためだけに年始から web スクレイピングを始めたばかりなので、難しいことはよくわかりません‥‥
やっぱり HTML5/CSS の基礎本からじっくりやるしかないでしょうか
引き続き、なにかコメントがありましたらよろしくお願いいたします‥‥
>>277
VBA で
Dim objIE As InternetExplorer
Set objIE = New InternetExplorer
objIE.navigate ur
時間待ちl
Dim htmlDoc As HTMLDocument
Set htmlDoc = objIE.document
Dim elementText As String
elementText = htmlDoc.querySelector("#cFx > table:nth-child(6) > tbody > tr:nth-child(1) > td.cell-02 > em").innerText
と書いていますが、それでもやっぱり VBA は関係ないのでしょうか?
280デフォルトの名無しさん (ワッチョイ c563-jDmM)
2021/01/18(月) 23:19:34.42ID:froKP66m0 スクレイピングが目的なら悪いことは言わないから大人しくpythonあたりにしとけ
281デフォルトの名無しさん (ドコグロ MMca-2/Tp)
2021/01/19(火) 00:16:19.06ID:9X7jktdiM 今月からpythonを始めてサイトから文字を取ってきてエクセルにぶち込むくらいなら一週間で出来たな
その後のエクセルの処理はもちろんVBAだけどなw
その後のエクセルの処理はもちろんVBAだけどなw
282デフォルトの名無しさん (JP 0Hcd-sTIO)
2021/01/19(火) 00:26:22.17ID:i//ZhdNzH 最近のホームページはブラウザごとに動作が違うから、本などを参考にするなら同じブラウザを使わないと、
本質と無関係なところではまって時間を無駄にすることになる
あと株価なんかスクレイピングしてもまったく意味ないぞ
どんだけ大量の数字を集めたところで、それで利益が出せると思ったら大間違いだからな
本質と無関係なところではまって時間を無駄にすることになる
あと株価なんかスクレイピングしてもまったく意味ないぞ
どんだけ大量の数字を集めたところで、それで利益が出せると思ったら大間違いだからな
>>282
>どんだけ大量の数字を集めたところで、それで利益が出せると思ったら大間違いだからな
そのとおりだと私も思います、ただし、さや取り(裁定取引)を米国株に適用するのなら商機あり、とみています
さや取り(裁定取引)とは:https://investars.jp/sayatori.php
>どんだけ大量の数字を集めたところで、それで利益が出せると思ったら大間違いだからな
そのとおりだと私も思います、ただし、さや取り(裁定取引)を米国株に適用するのなら商機あり、とみています
さや取り(裁定取引)とは:https://investars.jp/sayatori.php
284デフォルトの名無しさん (ブーイモ MMe5-rIb5)
2021/01/19(火) 06:36:37.01ID:6NIqY8sOM そもそも自動売買に使う頻度でスクレイピングって規約確認したのか?
285275 (ワッチョイ 6e2c-vYIt)
2021/01/19(火) 07:21:09.11ID:JrdPscbl0 >>275
を修正
275は、ヘッドレスモードで動かしたので、エラーになったけど、
表示させて動かしたら、エラーにならなかった
でも、要素は取得できなかった
IE11 は、もうサポート切れじゃないの?
使わない方が良い
基本、Chrome を使うべき!
を修正
275は、ヘッドレスモードで動かしたので、エラーになったけど、
表示させて動かしたら、エラーにならなかった
でも、要素は取得できなかった
IE11 は、もうサポート切れじゃないの?
使わない方が良い
基本、Chrome を使うべき!
286275 (ワッチョイ 6e2c-vYIt)
2021/01/19(火) 07:23:53.98ID:JrdPscbl0 勝手に頻繁にスクレイピングしたら、業務妨害で逮捕されるよ
基本、どの会社のサービスでも、
相手と契約して、API を使わないといけない
基本、どの会社のサービスでも、
相手と契約して、API を使わないといけない
287275 (ワッチョイ 6e2c-vYIt)
2021/01/19(火) 07:51:13.37ID:JrdPscbl0 そもそも、そのページ内に、id="cFx" が存在しない
var elems_1 = document.querySelectorAll( '#cFx' );
var elems_2 = document.querySelectorAll( '#cFx > table:nth-child(6) > tbody > tr:nth-child(1) > td.cell-02 > em' );
console.log( elems_1, elems_2 );
Chrome のF12 開発者ツールで実行しても、どちらも取得できない
var elems_1 = document.querySelectorAll( '#cFx' );
var elems_2 = document.querySelectorAll( '#cFx > table:nth-child(6) > tbody > tr:nth-child(1) > td.cell-02 > em' );
console.log( elems_1, elems_2 );
Chrome のF12 開発者ツールで実行しても、どちらも取得できない
288275 (ワッチョイ 6e2c-vYIt)
2021/01/19(火) 08:28:20.74ID:JrdPscbl0 Chrome のF12 開発者ツールのコンソール画面を開くと、幾つかエラーが出てる
ログインしてるとか、営業時間内とか、
何かの条件が揃わないと、
そのページ内に、id="cFx" が現れないのかも
ログインしてるとか、営業時間内とか、
何かの条件が揃わないと、
そのページ内に、id="cFx" が現れないのかも
290275 (ワッチョイ 6e2c-vYIt)
2021/01/20(水) 06:54:28.87ID:sOzWFlEJ0 エンジニアチャンネル・粟島が、
2つの取引所の価格差を利用して、Ruby で鞘取りしてる
【検証】プログラミングでビットコインを自動売買すると一週間でいくら稼げるのか?
https://www.youtube.com/channel/UCMMjv61LfBy5J3AT8Ua0NGQ
2つの取引所の価格差を利用して、Ruby で鞘取りしてる
【検証】プログラミングでビットコインを自動売買すると一週間でいくら稼げるのか?
https://www.youtube.com/channel/UCMMjv61LfBy5J3AT8Ua0NGQ
291デフォルトの名無しさん (オッペケ Srd1-VCNG)
2021/01/20(水) 19:14:01.82ID:WKaEu4ler 初心者です。
質問をさせてください。
A列のデータをソートして、境目に改ページを適用するVBAを組みました。
その後にもう1つ動作を組み込みたいのですが、可能でしょうか?
組み込みたい動作は、
改ページの境目の1つ上のC列の内容をF1セルに都度反映させる。
イメージとしては、改ページで分けた内容ごとにタイトル行の一部を変えたい、といった感じです。
例:都道府県別に改ページをし、
東京の場合はタイトル行に東京と入れ込む。
そもそも無理なのかもしれませんが、お伺いしたく。。
長文失礼しました。
ご教示いただけますよう、お願いいたします。
質問をさせてください。
A列のデータをソートして、境目に改ページを適用するVBAを組みました。
その後にもう1つ動作を組み込みたいのですが、可能でしょうか?
組み込みたい動作は、
改ページの境目の1つ上のC列の内容をF1セルに都度反映させる。
イメージとしては、改ページで分けた内容ごとにタイトル行の一部を変えたい、といった感じです。
例:都道府県別に改ページをし、
東京の場合はタイトル行に東京と入れ込む。
そもそも無理なのかもしれませんが、お伺いしたく。。
長文失礼しました。
ご教示いただけますよう、お願いいたします。
292デフォルトの名無しさん (ワッチョイ 8d7c-JESV)
2021/01/20(水) 20:49:26.31ID:j7C4dot+0 まずその通りやってみればいいのに
>>290
面白い動画を紹介いただきありがとうございました。
しかし裁定取引では、売りと買いの両方ができないと実現は困難かと考えています
BTC を売りから入ることは、たしか、まだできなかったのではないかと思います
面白い動画を紹介いただきありがとうございました。
しかし裁定取引では、売りと買いの両方ができないと実現は困難かと考えています
BTC を売りから入ることは、たしか、まだできなかったのではないかと思います
294デフォルトの名無しさん (ワッチョイ 8d04-sRMI)
2021/01/21(木) 21:48:26.77ID:YIL/x+Jj0 ソルバーが全然うまくいかないし会社の人も誰もソルバー自体知らんかった
マイナーか…
マイナーか…
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- バリ島で男子生徒ら集団万引きか、防犯カメラ映像が拡散 京都の大谷中学・高校が「窃盗行為」謝罪★4 [七波羅探題★]
- 中国軍機レーダー照射、トランプ氏沈黙突く 試される日本外交 [蚤の市★]
- 【地震】青森県で震度6強 長周期地震動も 津波注意報すべて解除 ★7 [ぐれ★] [ぐれ★]
- 【広島】「万引きした人を追跡」コンビニ店員の男性(46)を果物ナイフで刺したか 中国籍の少年(17)を殺人未遂容疑で現行犯逮捕 [ぐれ★]
- トランプ大統領 エヌビディア製AI半導体の中国輸出許可 安全保障重視の方針転換 [蚤の市★]
- 【速報】高市首相 青森震度6強地震で負傷者30人 [蚤の市★]
- でも日中間の一連の流れでナショナリズムは強化されたし防衛費拡大に寛容な空気になってるよな
- 寒さしのげる場所があって食べ物も豊富にあるなら熊は冬眠しないの?
- 【画像】TOKIO山口達也に「いいべ」された当時のJK、性加害の反動であたしこグラドルにwww [779857986]
- 声優・矢尾一樹の妻「治療の影響で思う様に話せない彼に、近くで仕事をしてきた人が、かっこ悪い!もう辞めなよと言った。私は許さない」 [594040874]
- 地震で部屋が大惨事になった写真をXにあげる奴って…
- 気象庁・高市内閣「この後311級の地震の可能性があります。北海道〜関東の人は1週間は地震が来てもすぐ逃げられる格好をしてください」 [597533159]
