ExcelのVBAに関する質問スレです
コード書き込みや作成依頼もOK
※前スレ
Excel VBA 質問スレ Part56
http://mevius.5ch.net/test/read.cgi/tech/1534976724/
探検
Excel VBA 質問スレ Part57
■ このスレッドは過去ログ倉庫に格納されています
2018/09/10(月) 21:42:39.57ID:K1uuwFLt
464デフォルトの名無しさん
2018/09/30(日) 23:40:53.09ID:aYXyCrkn ああ
オレなら余裕でサクッとできるわあ
キミラ低能にコレできる?
VLOOKUPでは行は1行しかとれない
少なくともコレではできない
オレなら余裕でサクッとできるわあ
キミラ低能にコレできる?
VLOOKUPでは行は1行しかとれない
少なくともコレではできない
465デフォルトの名無しさん
2018/09/30(日) 23:47:05.68ID:ItvcYfS7466デフォルトの名無しさん
2018/09/30(日) 23:49:34.63ID:ItvcYfS7467デフォルトの名無しさん
2018/09/30(日) 23:56:56.43ID:aYXyCrkn でた、vbaしかできない低学歴知恵遅れITドカタふがいきってる
468デフォルトの名無しさん
2018/10/01(月) 00:00:41.84ID:zfKNS/F/ で、低学歴知恵遅れは
どこにVLOOKUP使ったの?
ん? いってみ?
どこにVLOOKUP使ったの?
ん? いってみ?
469デフォルトの名無しさん
2018/10/01(月) 06:39:47.60ID:MCBRDKcK >>468
本気で言ってるのか?
本気で言ってるのか?
470デフォルトの名無しさん
2018/10/01(月) 07:49:25.42ID:u6gUPL8M sortについての質問です
レコードがあって、並び替えの基準列が例えば
0
4
1
0
5
となってたとします。これを
0
0
4
1
5
に並び替えたいのです。要は特定の値とそれ以外に分離させたいんです。
現状は行の下からループを回して、特定の値ではないならば行をカットして一番下に挿入するというコードなのですが遅いです。
なにかいい方法はないでしょうか
レコードがあって、並び替えの基準列が例えば
0
4
1
0
5
となってたとします。これを
0
0
4
1
5
に並び替えたいのです。要は特定の値とそれ以外に分離させたいんです。
現状は行の下からループを回して、特定の値ではないならば行をカットして一番下に挿入するというコードなのですが遅いです。
なにかいい方法はないでしょうか
471デフォルトの名無しさん
2018/10/01(月) 08:05:44.31ID:K7Kh8NR/ >>470
すべて配列に突っ込んで、配列上で並べかえてから書き換え
すべて配列に突っ込んで、配列上で並べかえてから書き換え
472デフォルトの名無しさん
2018/10/01(月) 08:06:55.02ID:PpuAKpxM473デフォルトの名無しさん
2018/10/01(月) 08:13:41.55ID:IH0VbElQ474デフォルトの名無しさん
2018/10/01(月) 08:25:33.53ID:iFb8zFFH countifと組み合せればできるよ
>>470もそうだけど、このスレ見てるとすぐVBA使いたがる人ってちょっと頭が残念なだけなのかなと思っちゃうね
>>470もそうだけど、このスレ見てるとすぐVBA使いたがる人ってちょっと頭が残念なだけなのかなと思っちゃうね
475デフォルトの名無しさん
2018/10/01(月) 09:15:58.47ID:oBEcQ0XA そらVBAの質問スレやしな。エクセル標準機能でもいいならエクセル質問板いくやろ
476デフォルトの名無しさん
2018/10/01(月) 10:03:52.20ID:H4/VTF+j 質問する方はね。
回答する方はVBAでやるべきかどうかと考えないのか。
回答する方はVBAでやるべきかどうかと考えないのか。
477デフォルトの名無しさん
2018/10/01(月) 10:46:30.51ID:bOC85JQ9478デフォルトの名無しさん
2018/10/01(月) 11:36:11.29ID:oBEcQ0XA >>476
質問する方は関数で出来るのを承知でVBAの答えを求めていると考えてVBAでしか答えないというスタンスもある。別に関数や操作で出来ることを教えてあげる点については異論はない。そういう答え方をしたい人がそう伝えればいい
質問する方は関数で出来るのを承知でVBAの答えを求めていると考えてVBAでしか答えないというスタンスもある。別に関数や操作で出来ることを教えてあげる点については異論はない。そういう答え方をしたい人がそう伝えればいい
479デフォルトの名無しさん
2018/10/01(月) 17:34:28.00ID:x1tycYY6 マクロってむかし使ったとき選択セルを基準に動いてた気がしたんだけど
今のパソコンでは違う場所で使おうとしても記憶した場所でしか動かなくなったけど
今のパソコンでは違う場所で使おうとしても記憶した場所でしか動かなくなったけど
480デフォルトの名無しさん
2018/10/01(月) 17:40:54.99ID:x1tycYY6 (選択セルでショートカットキーを押すとセルの中心にチェックボックスを作るようにしたいんだけど
(長いプログラムは無しで)
(長いプログラムは無しで)
481デフォルトの名無しさん
2018/10/01(月) 19:04:58.48ID:Rpti6CxP 初心者だけど、仕事でどうしても必要で試行錯誤中なのだが…
例えばなんだけど
@IEを起動して指摘のURLに飛ぶ→A管理者ユーザーでログイン→
Bユーザー情報検索のページに飛ぶ→Cプルダウンでユーザーの種別を選択→
Dユーザー名をフォームに転記→E検索ボタン押す→Fユーザーデータが表の形式で表示され、ある行をラジオボタンがあるので選択→
G決定ボタン押す→Hページ内のリンクをクリック→Iページ内のリンクをクリック→
J表示された文字列をコピーしてエクセルに出力
なんてことできるの?
説明がわかりにくくて申し訳ない。
@からBまではできたんだが…Cからができるか不安だ。
どうにかBを応用して繋げていけばできるんじゃないかと思っているのだが、これをユーザー分取得するという繰り返しをするとなると、全くイメージ出来ない。
自分でもイメージ出来ていないのに聞くのも難だが、流石に実現不可能かな?
例えばなんだけど
@IEを起動して指摘のURLに飛ぶ→A管理者ユーザーでログイン→
Bユーザー情報検索のページに飛ぶ→Cプルダウンでユーザーの種別を選択→
Dユーザー名をフォームに転記→E検索ボタン押す→Fユーザーデータが表の形式で表示され、ある行をラジオボタンがあるので選択→
G決定ボタン押す→Hページ内のリンクをクリック→Iページ内のリンクをクリック→
J表示された文字列をコピーしてエクセルに出力
なんてことできるの?
説明がわかりにくくて申し訳ない。
@からBまではできたんだが…Cからができるか不安だ。
どうにかBを応用して繋げていけばできるんじゃないかと思っているのだが、これをユーザー分取得するという繰り返しをするとなると、全くイメージ出来ない。
自分でもイメージ出来ていないのに聞くのも難だが、流石に実現不可能かな?
482デフォルトの名無しさん
2018/10/01(月) 19:07:07.36ID:cKKUS3dy >>481
出来る出来ないの返答を求めているようなのでそれだけ答えると「出来る」
出来る出来ないの返答を求めているようなのでそれだけ答えると「出来る」
483デフォルトの名無しさん
2018/10/01(月) 19:14:45.76ID:+ysO9sf2 >>481
あえてvbaとieを使う理由はないけどまあ出来るよ
あえてvbaとieを使う理由はないけどまあ出来るよ
484デフォルトの名無しさん
2018/10/01(月) 19:14:53.78ID:DnKjEw0R Aのフォームの操作ができてるならあとは全部Aの繰り返しだからもう少し頑張れ
485デフォルトの名無しさん
2018/10/01(月) 19:24:39.53ID:d7lQtBIe486デフォルトの名無しさん
2018/10/01(月) 19:25:25.93ID:d7lQtBIe >>483
vbaとieに拘りはないですが、導入が簡単そうだったので…
vbaとieに拘りはないですが、導入が簡単そうだったので…
487デフォルトの名無しさん
2018/10/01(月) 19:26:16.86ID:Zp0cocQA 質問者じゃないけど2とか3とかはどうやってやるの
488デフォルトの名無しさん
2018/10/01(月) 19:33:41.96ID:d7lQtBIe >>487
申し訳ない。Aは自動ログイン設定というか、IEの機能でidとpassをオートフィルしてくれる機能あるから、わざわざログイン情報を入力せずに、そのまま決定ボタンをクリックするようなコマンド?を記載したよ。
Bはその文字に埋め込まれたリンクを、htmlで探して指定した。
Aが苦労したな…javascript:loginとかいうので、どうやったら良いのかわからなかったけど、その頭にあるinputがページで何番目なのか数えて、4番目だったから4番目のinputをクリックしてね!って文を書いたら移動できた!
申し訳ない。Aは自動ログイン設定というか、IEの機能でidとpassをオートフィルしてくれる機能あるから、わざわざログイン情報を入力せずに、そのまま決定ボタンをクリックするようなコマンド?を記載したよ。
Bはその文字に埋め込まれたリンクを、htmlで探して指定した。
Aが苦労したな…javascript:loginとかいうので、どうやったら良いのかわからなかったけど、その頭にあるinputがページで何番目なのか数えて、4番目だったから4番目のinputをクリックしてね!って文を書いたら移動できた!
489デフォルトの名無しさん
2018/10/01(月) 19:45:57.55ID:MCBRDKcK490デフォルトの名無しさん
2018/10/01(月) 19:47:37.81ID:MCBRDKcK491デフォルトの名無しさん
2018/10/01(月) 20:52:16.85ID:lLn/Vvr8 RPA使えよ
仕事なら買ってもらえるだろ
仕事なら買ってもらえるだろ
492デフォルトの名無しさん
2018/10/01(月) 21:35:57.95ID:d7lQtBIe493デフォルトの名無しさん
2018/10/01(月) 21:36:29.14ID:d7lQtBIe >>490
iMacrosってやつ?試しに使ってみようと思う!
iMacrosってやつ?試しに使ってみようと思う!
494デフォルトの名無しさん
2018/10/01(月) 23:54:06.64ID:zfKNS/F/ vlookupなんか
どこにも見当たらない
オツムだけじゃなくて目も悪いの?
どこにも見当たらない
オツムだけじゃなくて目も悪いの?
495デフォルトの名無しさん
2018/10/02(火) 02:04:29.98ID:/QfTYNRi >>481
Seleniumデザインパターン&ベストプラクティス、2015、オライリー
この本は、Ruby で、Selenium WebDriver を使って、ウェブサイトを自動テストする本だけど、
まさにこういう事を、Rubyでプログラミングする
どのページ(URL)へ飛んで、入力フォームに入力して認証して、
買う商品を選んで、カートに入れて、決済する
まさに、Ruby・Selenium WebDriver が定番
簡単なものなら、iMacros, Selenium IDE で出来るかも
Seleniumデザインパターン&ベストプラクティス、2015、オライリー
この本は、Ruby で、Selenium WebDriver を使って、ウェブサイトを自動テストする本だけど、
まさにこういう事を、Rubyでプログラミングする
どのページ(URL)へ飛んで、入力フォームに入力して認証して、
買う商品を選んで、カートに入れて、決済する
まさに、Ruby・Selenium WebDriver が定番
簡単なものなら、iMacros, Selenium IDE で出来るかも
496デフォルトの名無しさん
2018/10/02(火) 05:27:11.42ID:uy7vLCLd >>489
普通におけるけど。
普通におけるけど。
497デフォルトの名無しさん
2018/10/02(火) 06:36:08.43ID:tR2WmwNe >>495
rubyとselenium webdriverか。こちらも試してみます!ありがとうございます。
rubyとselenium webdriverか。こちらも試してみます!ありがとうございます。
498495
2018/10/02(火) 07:13:32.60ID:/QfTYNRi 結局、ウェブページの自動テストツールを数年やってきた人たちは、次の2つにたどり着く
プログラマーは、Ruby で、Selenium WebDriver、
非プログラマーは、iMacros, Selenium IDE
漏れなんて、自分のPC 内の画像フォルダの画像でさえ、
Ruby・Selenium WebDriverでプログラミングして、ブラウザで見てる
HTML のimg タグに、画像のパスを設定して、ブラウザに表示させている
プログラマーは、Ruby で、Selenium WebDriver、
非プログラマーは、iMacros, Selenium IDE
漏れなんて、自分のPC 内の画像フォルダの画像でさえ、
Ruby・Selenium WebDriverでプログラミングして、ブラウザで見てる
HTML のimg タグに、画像のパスを設定して、ブラウザに表示させている
499デフォルトの名無しさん
2018/10/02(火) 07:17:00.46ID:3rK24ppg500デフォルトの名無しさん
2018/10/02(火) 07:21:20.23ID:XHPfCFYq またマッチポンプに引っかかってるのか?
頭悪すぎだろ
頭悪すぎだろ
501デフォルトの名無しさん
2018/10/02(火) 07:23:48.60ID:3rK24ppg いや、タダのボケだろ
ちょっとおもしろかったわ
ちょっとおもしろかったわ
502デフォルトの名無しさん
2018/10/02(火) 07:39:42.84ID:N1aQvONc 頭が悪いのを誤魔化そうとしても意味なくね?
503デフォルトの名無しさん
2018/10/02(火) 07:42:08.16ID:ahHfhE5m504495
2018/10/02(火) 09:00:24.92ID:/QfTYNRi Seleniumデザインパターン&ベストプラクティス、2015、オライリー
この本の著者がこう言ってる
最初は、ウェブページの自動テストを、Selenium IDE でやっていたけど、
大量の自動テストをこなすために、Ruby・Selenium WebDriver でプログラミングするようになった
これは、誰もがたどる道
この本の著者がこう言ってる
最初は、ウェブページの自動テストを、Selenium IDE でやっていたけど、
大量の自動テストをこなすために、Ruby・Selenium WebDriver でプログラミングするようになった
これは、誰もがたどる道
505デフォルトの名無しさん
2018/10/02(火) 09:10:32.38ID:fUFII8R1 別にVBAでも簡単だけどな。
既にVBAでRPAもどきを作ってある。
既にVBAでRPAもどきを作ってある。
506デフォルトの名無しさん
2018/10/02(火) 09:35:53.30ID:IHboiu3Y マッチポンプに掛かった間抜けがいるスレはここですか?
507デフォルトの名無しさん
2018/10/02(火) 10:09:51.02ID:IdpLKWF1 SikuliXおすすめ
適当なスクレイピングでよくてHTML解析する情熱が無くなった場合に使ってる
適当なスクレイピングでよくてHTML解析する情熱が無くなった場合に使ってる
508デフォルトの名無しさん
2018/10/02(火) 12:19:33.62ID:gUUCeKXU509デフォルトの名無しさん
2018/10/02(火) 12:33:06.04ID:1IC/OUbd Selenium全く必要ないっていう
510デフォルトの名無しさん
2018/10/02(火) 17:44:52.64ID:rk1+4NE+ >>505
技術的負債
技術的負債
511デフォルトの名無しさん
2018/10/02(火) 18:18:59.44ID:giBEQZ0B どうせ誰にもメンテできないんだから問題ない
返済されることのない借金は負債ではない
返済されることのない借金は負債ではない
512デフォルトの名無しさん
2018/10/02(火) 18:53:37.03ID:rk1+4NE+ 技術的負債はSIerに押し付ければいいのよ
事務員は保守性など気にせずクソでも動けばいいのでとにかく作る
プログラマを企業間のパワー差を活かして発給で雇いこき使ってメンテさせる
これがVBAerの正しいあり方だ
事務員は保守性など気にせずクソでも動けばいいのでとにかく作る
プログラマを企業間のパワー差を活かして発給で雇いこき使ってメンテさせる
これがVBAerの正しいあり方だ
513デフォルトの名無しさん
2018/10/02(火) 19:07:53.02ID:qyY5wEk7514デフォルトの名無しさん
2018/10/02(火) 19:32:27.30ID:V/qNOCI+ バリアント型変数にrangeを代入すると処理時間短縮になるというが、今いち実感が湧かない。
INPUTのテキストファイルの中身次第で出力するセル範囲が変わるんだが、
想定される最大のセル範囲をrangeに代入するよりは、セルひとつひとつにアクセスして最小限の範囲で出力したほうが処理時間早いんじゃないか…
INPUTのテキストファイルの中身次第で出力するセル範囲が変わるんだが、
想定される最大のセル範囲をrangeに代入するよりは、セルひとつひとつにアクセスして最小限の範囲で出力したほうが処理時間早いんじゃないか…
515デフォルトの名無しさん
2018/10/02(火) 19:33:46.34ID:JlZ/oy05 VBAでシステム組んでる企業は今はほとんどないのでは?
個人がちょっとしたマクロを書くぐらい
個人がちょっとしたマクロを書くぐらい
516デフォルトの名無しさん
2018/10/02(火) 19:48:52.17ID:eaArETqj ニートのプロさんは少しお口にチャックねw
517デフォルトの名無しさん
2018/10/02(火) 19:56:57.36ID:VwRcsjE4518デフォルトの名無しさん
2018/10/02(火) 20:18:38.93ID:JlZ/oy05 セキュリティ意識に欠けるね
マクロが禁止されるわけだ
マクロが禁止されるわけだ
519デフォルトの名無しさん
2018/10/02(火) 20:34:11.46ID:t6BWNYue >>514
出力に必要な行列の数だけ要素数を指定して適切なサイズの配列を使うようにすればいいじゃん
複数セル値の逐次更新は更新するセルの個数分だけプロパティ関数が実行されてイベント処理が走るので、同じセル数を更新する場合で比較すると配列による一括処理と比べて格段に重いよ
出力に必要な行列の数だけ要素数を指定して適切なサイズの配列を使うようにすればいいじゃん
複数セル値の逐次更新は更新するセルの個数分だけプロパティ関数が実行されてイベント処理が走るので、同じセル数を更新する場合で比較すると配列による一括処理と比べて格段に重いよ
520デフォルトの名無しさん
2018/10/02(火) 21:04:30.03ID:GLlKH6rT >>519
返答ありがとう。
INPUTのデータ次第で1行〜9999行目まで出力されるので、現状9999行までのセルを配列に格納している。
ちょいと処理時間を計測してみたんだが
出力件数によっては、
例えば200件程度だったときの場合、セルに都度アクセスしたほうが早かったのよね。
実行する度に、INPUTのデータ量次第で配列に格納する範囲が変えられると便利なのだが、それがわからないため9999行まで格納してるって感じかな
返答ありがとう。
INPUTのデータ次第で1行〜9999行目まで出力されるので、現状9999行までのセルを配列に格納している。
ちょいと処理時間を計測してみたんだが
出力件数によっては、
例えば200件程度だったときの場合、セルに都度アクセスしたほうが早かったのよね。
実行する度に、INPUTのデータ量次第で配列に格納する範囲が変えられると便利なのだが、それがわからないため9999行まで格納してるって感じかな
521デフォルトの名無しさん
2018/10/02(火) 21:09:51.81ID:R8M7QKDK http://fast-uploader.com/file/7094037561899/
バカが作ったのはまったく使い物にならないから
オレのを使いなさい
ダウソした
総合商品情報.xlsx
を
c:\tmp
に入れればとりあえず動く
保存する場所やファイル名変えたならSQLに入ってるパス変更すれば
とりあえず動く
バカが作ったのはまったく使い物にならないから
オレのを使いなさい
ダウソした
総合商品情報.xlsx
を
c:\tmp
に入れればとりあえず動く
保存する場所やファイル名変えたならSQLに入ってるパス変更すれば
とりあえず動く
522デフォルトの名無しさん
2018/10/02(火) 22:36:58.97ID:ZVIK4UcY PCから投稿したのが繁栄してないかもしれないので…
↓↓↓↓
社内のデータ加工で困っています。
VBAじゃないかもしれないのですが、
賢い方々助けてください。
やりたいことや実際のデータは下記URLにUPしています。
よろしくお願いします!
http://fast-uploader.com/file/7094034688478/
用意できる環境に書いてある「Microsoft Office 2016」は「Excel」を意味しています。
↓↓↓↓
社内のデータ加工で困っています。
VBAじゃないかもしれないのですが、
賢い方々助けてください。
やりたいことや実際のデータは下記URLにUPしています。
よろしくお願いします!
http://fast-uploader.com/file/7094034688478/
用意できる環境に書いてある「Microsoft Office 2016」は「Excel」を意味しています。
523デフォルトの名無しさん
2018/10/02(火) 22:50:57.49ID:t6BWNYue >>520
INPUTがどのような形でコードに渡されるか分からないが、例えばテキストデータを読み込んでいるなら、行数をeofになるまで数えて変数に代入して、その変数で配列要素数を指定すれば簡単だと思う
INPUTがどのような形でコードに渡されるか分からないが、例えばテキストデータを読み込んでいるなら、行数をeofになるまで数えて変数に代入して、その変数で配列要素数を指定すれば簡単だと思う
524デフォルトの名無しさん
2018/10/02(火) 23:02:37.82ID:uetVBQBr >>520
3回以上セルにアクセスするなら確実に配列に取り込んだほうが早い。
体感出来ないのはコードが完全に最適化出来てないだけ。
あと数式の埋め込まれたセルがあったりするとあり得ないくらい遅くなる。
(ある程度はスイッチで解消できるけど)
あとInputはめちゃくちゃ遅いよ。
バイナリモードで開いて一括読み込みがオススメ。
http://tetsucom.blogspot.com/2011/03/vba_9799.html
このサイトでは数倍しか差がついてないけど、元データの行数が増えるほどInputと差が開く
3回以上セルにアクセスするなら確実に配列に取り込んだほうが早い。
体感出来ないのはコードが完全に最適化出来てないだけ。
あと数式の埋め込まれたセルがあったりするとあり得ないくらい遅くなる。
(ある程度はスイッチで解消できるけど)
あとInputはめちゃくちゃ遅いよ。
バイナリモードで開いて一括読み込みがオススメ。
http://tetsucom.blogspot.com/2011/03/vba_9799.html
このサイトでは数倍しか差がついてないけど、元データの行数が増えるほどInputと差が開く
525デフォルトの名無しさん
2018/10/02(火) 23:48:15.72ID:VE+AbZ0A >>522
アップロードしたファイルに店名が含まれているんだが大丈夫か・・・
アップロードしたファイルに店名が含まれているんだが大丈夫か・・・
526デフォルトの名無しさん
2018/10/02(火) 23:53:53.97ID:GLlKH6rT 皆さん助言ありがとう。
処理のイメージとしては、1行ずつ読み込んで色々判定した後、1行ずつ出力していく感じです。
頂いた助言を試してみて、
事前にeofまでのループ処理で変数をカウントアップさせて、必要な行数を配列に格納させることはできました。
バイナリモードの件と合わせて、パフォーマンスの向上を目指しますm(_ _)m
処理のイメージとしては、1行ずつ読み込んで色々判定した後、1行ずつ出力していく感じです。
頂いた助言を試してみて、
事前にeofまでのループ処理で変数をカウントアップさせて、必要な行数を配列に格納させることはできました。
バイナリモードの件と合わせて、パフォーマンスの向上を目指しますm(_ _)m
527デフォルトの名無しさん
2018/10/02(火) 23:57:35.54ID:VE+AbZ0A528デフォルトの名無しさん
2018/10/03(水) 00:52:56.81ID:Ijm6Q0Hp >>525
気がつきませんでしたが、ダミーデータなので大丈夫です
気がつきませんでしたが、ダミーデータなので大丈夫です
529デフォルトの名無しさん
2018/10/03(水) 12:30:49.51ID:Ju5BAQ2L >>526
1行ずつ出力じゃあまり恩恵無いかもしれないけどまとまって出力すれば劇的な変化がある。
Dim i As Long
Dim j As Long
Dim varRng() As Variant
Dim t As Single
t = Timer
For i = 1 To 50000
For j = 1 To 50
Cells( i, j ).Value = i + j
Next j
Next i
Debug.Print Timer - t
t = Timer
Redim varRng( 1 To 50000, 1 To 50 ) As Variant
For i = 1 To 50000
For j = 1 To 50
varRng( i, j )= i + j
Next j
Next i
Range(A1:AX50000).Value = varRng
Debug.Print Timer - t
1行ずつ出力じゃあまり恩恵無いかもしれないけどまとまって出力すれば劇的な変化がある。
Dim i As Long
Dim j As Long
Dim varRng() As Variant
Dim t As Single
t = Timer
For i = 1 To 50000
For j = 1 To 50
Cells( i, j ).Value = i + j
Next j
Next i
Debug.Print Timer - t
t = Timer
Redim varRng( 1 To 50000, 1 To 50 ) As Variant
For i = 1 To 50000
For j = 1 To 50
varRng( i, j )= i + j
Next j
Next i
Range(A1:AX50000).Value = varRng
Debug.Print Timer - t
530デフォルトの名無しさん
2018/10/03(水) 16:42:01.11ID:uB4nYmn5 実践的に練習用の課題を解いていけて、段階的にスキルアップできるサイトないですか?
531デフォルトの名無しさん
2018/10/03(水) 21:13:21.04ID:4mO7hAaA Range(1,1).Value = 1-1
これをやると、1月1日にExcelが日付と解釈して変換する。
これを防ぐにはどうしたらいいですか。
文字列として格納するために""で囲むという手があるがそれをやりたくない。
理由は値(1-1)に加工していじってるから。
ちなみに、1-1は番地のつもりです。
これをやると、1月1日にExcelが日付と解釈して変換する。
これを防ぐにはどうしたらいいですか。
文字列として格納するために""で囲むという手があるがそれをやりたくない。
理由は値(1-1)に加工していじってるから。
ちなみに、1-1は番地のつもりです。
532デフォルトの名無しさん
2018/10/03(水) 21:37:41.99ID:B0/YTPvH533デフォルトの名無しさん
2018/10/03(水) 21:58:23.71ID:siQNEaWd534デフォルトの名無しさん
2018/10/03(水) 22:24:31.18ID:IRo5OOwi 1件だけなら 「Range(1, 1) = "'1-1"」でもいいかもしれんが、沢山あるようなら配列を使って一発代入するかな。
535デフォルトの名無しさん
2018/10/03(水) 22:37:26.98ID:cOBWyVpF536デフォルトの名無しさん
2018/10/03(水) 23:48:07.24ID:FigU8Mbj Cells(Rows.Count, 1).End(xlUp).Row
これだとhiddenで隠れている行は無視されてしまいます
あくまでも最後に入力されている行を取得したい場合はどうすればいい?
もちろんhiddenを一時的に表示にする以外方法で
隠れていてもデータ行として扱う方法
これだとhiddenで隠れている行は無視されてしまいます
あくまでも最後に入力されている行を取得したい場合はどうすればいい?
もちろんhiddenを一時的に表示にする以外方法で
隠れていてもデータ行として扱う方法
537デフォルトの名無しさん
2018/10/03(水) 23:54:17.02ID:7gIy/TEB ↓ココに操作手順がおいた
http://fast-uploader.com/file/7094133678468/
[SQLの編集]タブに編集の仕方が載ってる(denpyouを例にしてるが、編集の仕方は他も同じ)
※ vbaじゃないからな、コードはない
※ ちなみにデータとデータの抽出結果を出力するブックは別でも問題ない
新規に自分で作成したい場合は
>>437 ← コレ
を参考にしなさい
http://fast-uploader.com/file/7094133678468/
[SQLの編集]タブに編集の仕方が載ってる(denpyouを例にしてるが、編集の仕方は他も同じ)
※ vbaじゃないからな、コードはない
※ ちなみにデータとデータの抽出結果を出力するブックは別でも問題ない
新規に自分で作成したい場合は
>>437 ← コレ
を参考にしなさい
538デフォルトの名無しさん
2018/10/04(木) 00:51:18.54ID:FEHQanR0 半角先生口は悪いけど割と優しいからすき
539デフォルトの名無しさん
2018/10/04(木) 00:55:39.43ID:X6BA3+Oo VBAの実行環境をDockerizeする方法を教えてください
540デフォルトの名無しさん
2018/10/04(木) 07:43:14.54ID:tsjyo4iv >>536
used range使えば?最終行取得でググれ
used range使えば?最終行取得でググれ
541デフォルトの名無しさん
2018/10/04(木) 09:11:12.18ID:ZcbeCQ3S UsedRangeはプロパティに変更が加えられたセルを全てカウントアップするから物凄く癖がある
うっかり列範囲全体に書式設定なんかしてると最終行は1,048,576行目なんてことになるので注意
うっかり列範囲全体に書式設定なんかしてると最終行は1,048,576行目なんてことになるので注意
542デフォルトの名無しさん
2018/10/04(木) 12:04:05.58ID:x9VzQgv/ >>541
列に対しての書式設定ならそんな風にはならない。
貼り付けするとそうなる危険性はあるけど、今のエクセルは警告出るし、実行に時間かかるし、めちゃくちゃ重たくなるから、マクロ以前にブック修復すべき案件
列に対しての書式設定ならそんな風にはならない。
貼り付けするとそうなる危険性はあるけど、今のエクセルは警告出るし、実行に時間かかるし、めちゃくちゃ重たくなるから、マクロ以前にブック修復すべき案件
543デフォルトの名無しさん
2018/10/04(木) 13:15:55.34ID:Vut2i4+m Do loop関数でウェブ上の変数を取り込んでセルに表示したいんですが、セルA1に最新の変数を表示し、一つ過去のは真下セルに移動する
これを繰り返して変数をA列に積み上げいくようにしたいんですが、どうすればよいでしょうか
これを繰り返して変数をA列に積み上げいくようにしたいんですが、どうすればよいでしょうか
544デフォルトの名無しさん
2018/10/04(木) 13:37:33.14ID:Vut2i4+m 挿入でできました 失礼しました
545デフォルトの名無しさん
2018/10/04(木) 14:40:06.72ID:Vut2i4+m Selenium Webdriverについて質問です。
@chromeを起動
Aあるwebサイトのユーザーページにログイン
Bユーザーページ上で作業
という操作を自動化しようとしています。
@、Aは良いのですがBが複雑なため、その部分のコードで試行錯誤しております。
しかしコードを修正するたびに@から行っているため時間がかかっております。
@Aで起動したブラウザを利用して、Bから別のsubプロシージャにして、Bだけ実行して検証したいのですがどのようにすればよいのでしょうか。
下が@Aのコードです。
sub 1()
Dim driver As New SeleniumWrapper.WebDriver
driver.Start "chrome", "https://aaa.com/login?"
driver.get ("/")
driver.findElementByName("UserID").SendKeys ("yamada")
driver.findElementByName("pass_word").SendKeys ("1234")
@chromeを起動
Aあるwebサイトのユーザーページにログイン
Bユーザーページ上で作業
という操作を自動化しようとしています。
@、Aは良いのですがBが複雑なため、その部分のコードで試行錯誤しております。
しかしコードを修正するたびに@から行っているため時間がかかっております。
@Aで起動したブラウザを利用して、Bから別のsubプロシージャにして、Bだけ実行して検証したいのですがどのようにすればよいのでしょうか。
下が@Aのコードです。
sub 1()
Dim driver As New SeleniumWrapper.WebDriver
driver.Start "chrome", "https://aaa.com/login?"
driver.get ("/")
driver.findElementByName("UserID").SendKeys ("yamada")
driver.findElementByName("pass_word").SendKeys ("1234")
546デフォルトの名無しさん
2018/10/04(木) 17:50:31.63ID:ImPAYWBj Private driver As SeleniumWrapper.WebDriver
Sub Init()
@
A
End Sub
Sub Work()
driver.get(ユーザーページ)
B
End Sub
他のスクリプト言語に変えたほうが楽ですよ
Sub Init()
@
A
End Sub
Sub Work()
driver.get(ユーザーページ)
B
End Sub
他のスクリプト言語に変えたほうが楽ですよ
547デフォルトの名無しさん
2018/10/04(木) 18:15:13.64ID:Vut2i4+m >>546
ありがとうございます。
やってみたのですが、getメソッドでSystem.NullReferenceExceptionというエラーが出ます.....
他のスクリプト言語というとRubyということになるのでしょうか?
ありがとうございます。
やってみたのですが、getメソッドでSystem.NullReferenceExceptionというエラーが出ます.....
他のスクリプト言語というとRubyということになるのでしょうか?
548デフォルトの名無しさん
2018/10/04(木) 18:36:18.81ID:/wVNZxwJ >>547
driverを初期化してないからだと思うぞ。
driverを初期化してないからだと思うぞ。
549デフォルトの名無しさん
2018/10/04(木) 18:46:00.60ID:Vut2i4+m550デフォルトの名無しさん
2018/10/04(木) 19:13:03.15ID:/wVNZxwJ >>549
Private driver As SeleniumWrapper.WebDriver ←モジュール領域(各プロシージャの更に上位)でdriverを定義。ただし初期化していない。
Sub Init() ←Initプロシージャを実行する時にdriverを初期化し@・Aを実行する必要がある
Set driver = New SeleniumWrapper.WebDriver ←ココ
@
A
End Sub
Sub Work() ←Initプロシージャを実行してからWorkプロシージャを実行すると、色々(B)を実行してくれる
driver.get(ユーザーページ)
B
End Sub
念のため言っとくと俺は>>546じゃないがついでに解説しただけで、
>>545が求めているものがこれで満たせるのかまでは関知しない。
Private driver As SeleniumWrapper.WebDriver ←モジュール領域(各プロシージャの更に上位)でdriverを定義。ただし初期化していない。
Sub Init() ←Initプロシージャを実行する時にdriverを初期化し@・Aを実行する必要がある
Set driver = New SeleniumWrapper.WebDriver ←ココ
@
A
End Sub
Sub Work() ←Initプロシージャを実行してからWorkプロシージャを実行すると、色々(B)を実行してくれる
driver.get(ユーザーページ)
B
End Sub
念のため言っとくと俺は>>546じゃないがついでに解説しただけで、
>>545が求めているものがこれで満たせるのかまでは関知しない。
551デフォルトの名無しさん
2018/10/04(木) 19:25:04.84ID:USJCeaSx 質問いいですか?
VBAでコールバックを行うとき
クラスが対象の場合はCallByNameで行う事が出来ますが
標準モジュールの場合、どうするんでしたっけ?
確かAPIを使った様な気がしたんですが
どのAPIを使ってどうするのか
忘れてしまいました。
VBAでコールバックを行うとき
クラスが対象の場合はCallByNameで行う事が出来ますが
標準モジュールの場合、どうするんでしたっけ?
確かAPIを使った様な気がしたんですが
どのAPIを使ってどうするのか
忘れてしまいました。
552デフォルトの名無しさん
2018/10/04(木) 19:32:08.96ID:apogHBJA >>551
忘れたけど ariawase を見れば出てくるんじゃね
忘れたけど ariawase を見れば出てくるんじゃね
553デフォルトの名無しさん
2018/10/04(木) 20:46:51.81ID:Vut2i4+m >>550
とても丁寧にありがとうございます。追加質問させてほしいです。
A: 今回「driver」はオブジェクト変数となるため、定義の際はnew演算子を使用する。またはsetで格納する必要がある。ということで良いのでしょうか?
B: >>550で「ただし初期化していない」とありますが、あるサイトで「vbaでは変数宣言したときに初期化が行われる」という記述を見ました。
これは、setで格納されてないから初期化すらされてない という意味でしょうか。
C: プロシージャが実行されるごとに初期化されればよいならば、private変数の定義をやめて、@〜A、BそれぞれでDim driver As New SeleniumWrapper.WebDriver と定義すればエラーは出ないと思ったのですが、
やはりBのgetメソッドのところで「System.NullReferenceException」エラーが出てしまいました。何故なのでしょうか・・・
長文ですみません どうか宜しくお願いいたします。
とても丁寧にありがとうございます。追加質問させてほしいです。
A: 今回「driver」はオブジェクト変数となるため、定義の際はnew演算子を使用する。またはsetで格納する必要がある。ということで良いのでしょうか?
B: >>550で「ただし初期化していない」とありますが、あるサイトで「vbaでは変数宣言したときに初期化が行われる」という記述を見ました。
これは、setで格納されてないから初期化すらされてない という意味でしょうか。
C: プロシージャが実行されるごとに初期化されればよいならば、private変数の定義をやめて、@〜A、BそれぞれでDim driver As New SeleniumWrapper.WebDriver と定義すればエラーは出ないと思ったのですが、
やはりBのgetメソッドのところで「System.NullReferenceException」エラーが出てしまいました。何故なのでしょうか・・・
長文ですみません どうか宜しくお願いいたします。
554デフォルトの名無しさん
2018/10/04(木) 22:18:56.04ID:/wVNZxwJ >>553
A: あってる
B: だいたいあってる
C: まずコードが動くことを確認してから弄れ。>>546の意図が汲めないならすっぱり諦めて別の方法を考えろ。
流石にこれ以上は自分で調べろ。
追伸
B: とりあえず「値型は宣言と同時に初期化される、オブジェクト型はNewやSetをしてからでないと使えない」と思っとけ
C: 要はWebDriverの「使い回し」がしたいという質問に答えたのが>>546
・モジュールレベルで宣言すれば、各プロシージャ内から変数「driver」を通じて同じ実体(インスタンスという)にアクセスできる
・Initでモジュールレベル変数「driver」を初期化したりStartなどのメソッドを実行すれば、Workでdriverにアクセスした時にその続きのアレコレができる
・逆にInitで初期化やStartその他を実行したにもかかわらずWorkで新たな変数「driver」を宣言したらInitで行った処理が水泡に帰する
・またInit内で新たな変数「driver」を宣言し初期化等をした場合も、Init終了と同時に実体が消えて無くなる
仕事中なんであれこれ端折って書いたので間違ってる部分もあるかもしれんが、「インスタンス」とか「スコープ」とかでググって調べてみてくれ。
A: あってる
B: だいたいあってる
C: まずコードが動くことを確認してから弄れ。>>546の意図が汲めないならすっぱり諦めて別の方法を考えろ。
流石にこれ以上は自分で調べろ。
追伸
B: とりあえず「値型は宣言と同時に初期化される、オブジェクト型はNewやSetをしてからでないと使えない」と思っとけ
C: 要はWebDriverの「使い回し」がしたいという質問に答えたのが>>546
・モジュールレベルで宣言すれば、各プロシージャ内から変数「driver」を通じて同じ実体(インスタンスという)にアクセスできる
・Initでモジュールレベル変数「driver」を初期化したりStartなどのメソッドを実行すれば、Workでdriverにアクセスした時にその続きのアレコレができる
・逆にInitで初期化やStartその他を実行したにもかかわらずWorkで新たな変数「driver」を宣言したらInitで行った処理が水泡に帰する
・またInit内で新たな変数「driver」を宣言し初期化等をした場合も、Init終了と同時に実体が消えて無くなる
仕事中なんであれこれ端折って書いたので間違ってる部分もあるかもしれんが、「インスタンス」とか「スコープ」とかでググって調べてみてくれ。
555デフォルトの名無しさん
2018/10/04(木) 22:32:59.61ID:Vut2i4+m >>554
本当に丁寧にありがとうございます。
伝えるのを忘れていましたが、言われた通りにコードを記述しうまくいきました。それを踏まえてのCでした。
インスタンス、スコープで調べてみます。ありがとうございました。
本当に丁寧にありがとうございます。
伝えるのを忘れていましたが、言われた通りにコードを記述しうまくいきました。それを踏まえてのCでした。
インスタンス、スコープで調べてみます。ありがとうございました。
556デフォルトの名無しさん
2018/10/05(金) 12:52:55.81ID:VkzGqctC 「選択したセルの値を-1する」のに下記のようなプログラムを書いた。
Dim cell As Range
For Each cell In Selection
cell.Value = cell - 1
Next
これはOK。
「セルの値がブランクまたは0のとき、ブランクにする」を追加して、
Dim cell As Range
For Each cell In Selection
If cell.Value <> 0 Then
cell.Value = cell - 1
Else
Next
としたら「Nextに対応するForがありません」と怒られてしまいました。
どこがいけないのでしょうか?
Dim cell As Range
For Each cell In Selection
cell.Value = cell - 1
Next
これはOK。
「セルの値がブランクまたは0のとき、ブランクにする」を追加して、
Dim cell As Range
For Each cell In Selection
If cell.Value <> 0 Then
cell.Value = cell - 1
Else
Next
としたら「Nextに対応するForがありません」と怒られてしまいました。
どこがいけないのでしょうか?
557デフォルトの名無しさん
2018/10/05(金) 12:58:15.96ID:vSWfZutq if文が閉じてないから
558デフォルトの名無しさん
2018/10/05(金) 16:28:56.84ID:JjUc2WZB >>556
お前の知能に障害がある
お前の知能に障害がある
559デフォルトの名無しさん
2018/10/05(金) 16:54:22.89ID:9/5M8DWU >>556
インデントが適当だからそういうミスに気がつかない
インデントが適当だからそういうミスに気がつかない
560デフォルトの名無しさん
2018/10/05(金) 17:24:22.25ID:KMKJ670I else nextとか書く馬鹿にインデントもなにもねーよ
561デフォルトの名無しさん
2018/10/05(金) 17:30:08.09ID:nkW6jPyv 適当ならいいじゃないか
562デフォルトの名無しさん
2018/10/05(金) 18:25:40.30ID:wi1wUlXh Ifは基本一行で済ませるか、If...Then句を書いた後にすぐ改行して同じインデントレベルでEnd If 句を入れる癖をつけろ
563デフォルトの名無しさん
2018/10/05(金) 21:10:17.32ID:Hvo0Z6Jl >>448
レベルアップするたびにポイントをVBAにばかり振り分けてきたんだよきっとw
レベルアップするたびにポイントをVBAにばかり振り分けてきたんだよきっとw
564デフォルトの名無しさん
2018/10/05(金) 21:14:01.44ID:sMfkQDgh■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 「もうキモくてキモくて…」29歳女性が語る“おぢアタック”の実態。「俺ならイケるかも」年下女性を狙う勘違い中年男性には共通点が [Hitzeschleier★]
- テレビ朝日 本社から男性が転落し死亡。関連会社社員か 当たった通行人が左肩軽傷 [阿弥陀ヶ峰★]
- 中国軍機がレーダー照射 小泉防衛大臣の説明に「矛盾している」中国外務省報道官が批判 [♪♪♪★]
- テレビ朝日本社から20~30代の関連会社社員とみられる男性が転落し死亡 六本木けやき坂通りの通行人にはけが人なし [少考さん★]
- 「これいいじゃん!!!」 セブン-イレブンの1620円で買える“1人用クリスマスケーキ”🎂に注目殺到「天才すぎる」 [パンナ・コッタ★]
- 高市早苗首相が天理教系企業に“巨額発注” 総額5000万円 本人は「政治団体の活動に必要な支出」と回答 ★2 [Hitzeschleier★]
- 自認トトロなんだが
- 【乞食速報】プロクオリティ ビーフカレー 96食 4262円 [268244553]
- 【実況】博衣こよりのえちえちスーパーダンガンロンパ7🧪
- enaga(´・Ǎ・`) ◆99xH8ena32 ってコテわろたwwwwwwwwwww
- 年末のvip芋煮会って何日だっけ?
- 正常位と対面座位だとイけないんだけど自分だけか?
