!extend:checked:vvvvv:1000:512
スレ立ての際は一行目に
!extend:checked:vvvvv:1000:512
と入れてスレ立てして下さい
ExcelのVBAに関する質問スレです
コード書き込みや作成依頼もOK
※前スレ
Excel VBA 質問スレ Part47 [無断転載禁止]©2ch.net
http://echo.2ch.net/test/read.cgi/tech/1489557874/
※関連スレ
VBAなんでも質問スレ Part2
http://echo.2ch.net/test/read.cgi/tech/1432173164/
Access VBA 質問スレ Part1
http://echo.2ch.net/test/read.cgi/tech/1328536426/
Excel総合相談所 125
http://echo.2ch.net/test/read.cgi/bsoft/1481369538/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
探検
Excel VBA 質問スレ Part48 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん 転載ダメ©2ch.net (ワッチョイ 6f8e-Fc1g)
2017/05/16(火) 08:24:45.78ID:iIGA/64l0457デフォルトの名無しさん (ワッチョイ 7a61-N0z9)
2017/06/02(金) 00:18:14.15ID:WCh1iO0Y0 >>456
その気持ちはよくわかる
その行を実行した直後はどの変数にも入っていないシートだからなんか不安になる
どうしても不安なときは先に新規ブック作っといてそこをコピー先にしてるけどね
それはそれで無駄なことしてんなあという気になる
その気持ちはよくわかる
その行を実行した直後はどの変数にも入っていないシートだからなんか不安になる
どうしても不安なときは先に新規ブック作っといてそこをコピー先にしてるけどね
それはそれで無駄なことしてんなあという気になる
458デフォルトの名無しさん (アークセー Sx3d-nANo)
2017/06/02(金) 06:38:31.89ID:tmNEumAvx >>448
機能とは関係ない話だけど変数名はNewBookじゃなくてNewSheetにした方がニュアンス的に正しくない?
機能とは関係ない話だけど変数名はNewBookじゃなくてNewSheetにした方がニュアンス的に正しくない?
459デフォルトの名無しさん (ワッチョイ f94c-k7rq)
2017/06/02(金) 06:52:23.32ID:MGPR/erb0460デフォルトの名無しさん (ワッチョイ 3acd-PQPf)
2017/06/02(金) 11:33:41.01ID:8fOMtk3c0461デフォルトの名無しさん (ワッチョイ 290a-KDIu)
2017/06/02(金) 11:39:22.60ID:EMy/L9NX0 >>460
義務じゃないんだから、嫌ならもう来なくていよ
義務じゃないんだから、嫌ならもう来なくていよ
462デフォルトの名無しさん (ワッチョイ 3acd-PQPf)
2017/06/02(金) 12:18:35.67ID:8fOMtk3c0 >>461
またそうやって話逸らして逃げるんだから
またそうやって話逸らして逃げるんだから
463デフォルトの名無しさん (ブーイモ MM8e-JT0G)
2017/06/02(金) 12:26:31.41ID:I1EQuNZXM ある数値に対して指数表記の有理数と指数を楽に拾いたいときって、format関数を使うのがいいですかね?
他に楽な方法ありますか?
他に楽な方法ありますか?
464デフォルトの名無しさん (ワッチョイ 6aa8-k7rq)
2017/06/02(金) 14:32:15.95ID:zUUtTsys0 どんな方法があるにせよ、お前はそれで納得できずもっと他にないの?って
聞き続けるんだろ? >>463
聞き続けるんだろ? >>463
465デフォルトの名無しさん (ブーイモ MM8e-JT0G)
2017/06/02(金) 17:47:56.11ID:I1EQuNZXM 書いてたら泥沼化してたんだけど、結構すっきり書けました。
指数=cint(split(format(数値,"0e+0"),"e")(1))
有理数=数値*0.1^指数
指数=cint(split(format(数値,"0e+0"),"e")(1))
有理数=数値*0.1^指数
466デフォルトの名無しさん (ワッチョイ edd4-k7rq)
2017/06/02(金) 21:26:05.82ID:rlzCeZS80 エクセルの複数のセルの外枠に罫線を引きたいのですが、アプリケーション定義なんたらのエラーが出ます。
workbooks(********.***).worksheets(*****).range(cells(StartRow,StartCol),cells(endrow,endocol).borderaround
でstartrow startcol endrow endcolは変数です
どこがおかしいでしょうか?
workbooks(********.***).worksheets(*****).range(cells(StartRow,StartCol),cells(endrow,endocol).borderaround
でstartrow startcol endrow endcolは変数です
どこがおかしいでしょうか?
467デフォルトの名無しさん (ブーイモ MM0a-JT0G)
2017/06/02(金) 21:45:23.47ID:Zr32bafNM >>466
cellsがActiveSheetのセルなのでエラーになる。
↓のような感じでどうぞ。
with workbooks(********.***).worksheets(*****)
.range(.cells(StartRow,StartCol), .cells(endrow,endocol).borderaround
end with
cellsがActiveSheetのセルなのでエラーになる。
↓のような感じでどうぞ。
with workbooks(********.***).worksheets(*****)
.range(.cells(StartRow,StartCol), .cells(endrow,endocol).borderaround
end with
468デフォルトの名無しさん (ワッチョイ edd4-k7rq)
2017/06/02(金) 22:52:19.74ID:rlzCeZS80 >>467 ありがとう。 そういうことだったんですね。
469デフォルトの名無しさん (ワッチョイ 9ec8-amhP)
2017/06/03(土) 17:22:19.30ID:u7+4M4Ru0 >>468
初心者が一番嵌まる奴だな。
初心者が一番嵌まる奴だな。
470デフォルトの名無しさん (ワッチョイ 66e2-mhqb)
2017/06/03(土) 21:54:33.85ID:4eBaDiw20 クラスモジュールってクラス定義してインスタンス化できるってこと?マルチスレッド可能なの?
オブジェクト指向?
オブジェクト指向?
471デフォルトの名無しさん (ワッチョイ 5e8e-N4+x)
2017/06/03(土) 22:20:24.58ID:KC92KqWf0472デフォルトの名無しさん (アークセー Sx3d-nANo)
2017/06/03(土) 22:30:10.37ID:aDOlFL7Wx473デフォルトの名無しさん (ワッチョイ 5e8e-N4+x)
2017/06/03(土) 22:32:25.28ID:KC92KqWf0 エクセルvbaの場合エクセル自体がメインのオブジェクトだから、そんなにclassにこだわることもないけどね
エクセルvbaでゲーム作ってる人は知らん
エクセルvbaでゲーム作ってる人は知らん
475デフォルトの名無しさん (アークセー Sx3d-nANo)
2017/06/03(土) 23:02:58.42ID:aDOlFL7Wx476デフォルトの名無しさん (ワッチョイ 5e8e-N4+x)
2017/06/03(土) 23:49:37.74ID:KC92KqWf0 vbaって継承できたのか、知らなかった・・・
477デフォルトの名無しさん (ワッチョイ 353c-pj9K)
2017/06/03(土) 23:53:01.27ID:6M92ecdj0478デフォルトの名無しさん (ワッチョイ 09c7-hSUX)
2017/06/04(日) 00:02:03.04ID:SMq8qLM70 >>477
C++でわからなかったんだからわかってないよそれw
C++でわからなかったんだからわかってないよそれw
479デフォルトの名無しさん (ワッチョイ 353c-pj9K)
2017/06/04(日) 00:14:43.34ID:QJwsDnIt0480デフォルトの名無しさん (ワッチョイ 09c7-xxAH)
2017/06/04(日) 00:23:32.29ID:SMq8qLM70 >>479
そうか?オレ毎日納豆食うけど食うたびに美味しいぜ?
そうか?オレ毎日納豆食うけど食うたびに美味しいぜ?
481デフォルトの名無しさん (ワッチョイ eaa6-zUMb)
2017/06/04(日) 00:46:27.14ID:TICwxklg0 無くてもいいかなあ
とわざわざ考えるとは疑問
とわざわざ考えるとは疑問
482デフォルトの名無しさん (ワッチョイ 5e8e-N4+x)
2017/06/04(日) 00:55:58.63ID:/9No1Vdv0 C++の共用体はこんなもん使うか?と思ったけど、使うべき場面が来たら普通に使う
そういうもんだった
そういうもんだった
483デフォルトの名無しさん (ワッチョイ f94c-k7rq)
2017/06/04(日) 01:47:41.87ID:ObX9l6mb0 ありとあらゆる機能を使って実装するっていう状況自体少ないだろうしな。
484デフォルトの名無しさん (ワッチョイ 6a6f-E6+r)
2017/06/04(日) 08:43:15.60ID:/sAoF2vM0 マルチスレッドが無理って、
2つのブックでDoEventsして、
2つ実行したらおかしくなるってこと?
2つのブックでDoEventsして、
2つ実行したらおかしくなるってこと?
485デフォルトの名無しさん (ワッチョイ bd23-KDIu)
2017/06/04(日) 11:38:52.57ID:ParPgGiC0 >>484
それはマルチスレッドじゃなくね?
それはマルチスレッドじゃなくね?
486デフォルトの名無しさん (ワッチョイ 3511-UdBD)
2017/06/04(日) 11:40:48.80ID:NZhuuX9z0 なんやかんやクラスは便利
データまとめるのにはよく使うわ
データまとめるのにはよく使うわ
487デフォルトの名無しさん (アークセー Sx3d-nANo)
2017/06/04(日) 12:00:24.95ID:I9SwB1IFx488デフォルトの名無しさん (ワッチョイ 3511-UdBD)
2017/06/04(日) 12:55:28.25ID:NZhuuX9z0489デフォルトの名無しさん (アークセー Sx3d-nANo)
2017/06/04(日) 13:22:31.55ID:tlzlLDo0x490デフォルトの名無しさん (ワッチョイ 9e23-amhP)
2017/06/04(日) 17:48:58.65ID:1s3T2QVw0 >>484
全然ちがう。
win32API使って別スレッド作る方法はあるし可能だよ。
けどExcelVBAでそれをやると物凄い不安定になる。
自分が試した感触ではRangeとかCellとかのExcelのオブジェクト触った瞬間にExcelごと落ちる感じ。
じゃあ、Excelのオブジェクト触らずに計算する所だけなら良いかというと、動く場合もあるけど複雑なものになると処理が間に合わなくて落ちるらしい。
基本、やめた方が良い。
全然ちがう。
win32API使って別スレッド作る方法はあるし可能だよ。
けどExcelVBAでそれをやると物凄い不安定になる。
自分が試した感触ではRangeとかCellとかのExcelのオブジェクト触った瞬間にExcelごと落ちる感じ。
じゃあ、Excelのオブジェクト触らずに計算する所だけなら良いかというと、動く場合もあるけど複雑なものになると処理が間に合わなくて落ちるらしい。
基本、やめた方が良い。
491デフォルトの名無しさん (スプッッ Sded-qcoX)
2017/06/05(月) 01:20:19.17ID:oPyz6kCkd 別処理をWord使って処理させようとしてもOffice全体で連携かかってるみたいでうまくいかなかったことがある
変なとこで作り込まれていてやりたいようにできないんだよな
変なとこで作り込まれていてやりたいようにできないんだよな
492デフォルトの名無しさん (ドコグロ MM12-Tm/A)
2017/06/05(月) 08:37:00.53ID:nJSdLO+iM 元々マルチスレッドに対応してないものを無理矢理動かそうとして文句言われてもなぁ...
493デフォルトの名無しさん (ワッチョイ 5e6d-zyXy)
2017/06/05(月) 08:43:10.54ID:+xVCJOY00 文句じゃなくね
494デフォルトの名無しさん (ワッチョイ 2973-KDIu)
2017/06/05(月) 08:55:26.49ID:btJTHdak0 想定外の使い方ができないぞ!ってのは文句じゃないのか
495デフォルトの名無しさん (スップ Sdea-rE82)
2017/06/05(月) 09:24:51.60ID:Sx3XxldLd >>490
ほほ同じ経験がある。
自分の場合は処理が終了したデータをDBにINSERTするところは上手くマルチスレッド化できた。
待ち合わせが必要ないパターンだったし。
COMそのものがマルチスレッドだめなんかね?
ほほ同じ経験がある。
自分の場合は処理が終了したデータをDBにINSERTするところは上手くマルチスレッド化できた。
待ち合わせが必要ないパターンだったし。
COMそのものがマルチスレッドだめなんかね?
496デフォルトの名無しさん (JP 0H6e-rLqX)
2017/06/05(月) 11:01:11.07ID:bwrXOc4qH >>490
> 自分が試した感触ではRangeとかCellとかのExcelのオブジェクト触った瞬間にExcelごと落ちる感じ。
それGUIアプリの常識。
全然関係ないスレッドからUIスレッド管理下のものに触ってはいけない。
https://ja.wikipedia.org/wiki/%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E3%82%A4%E3%83%B3%E3%82%BF%E3%83%BC%E3%83%95%E3%82%A7%E3%82%A4%E3%82%B9%E3%82%B9%E3%83%AC%E3%83%83%E3%83%89
> 自分が試した感触ではRangeとかCellとかのExcelのオブジェクト触った瞬間にExcelごと落ちる感じ。
それGUIアプリの常識。
全然関係ないスレッドからUIスレッド管理下のものに触ってはいけない。
https://ja.wikipedia.org/wiki/%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E3%82%A4%E3%83%B3%E3%82%BF%E3%83%BC%E3%83%95%E3%82%A7%E3%82%A4%E3%82%B9%E3%82%B9%E3%83%AC%E3%83%83%E3%83%89
497デフォルトの名無しさん (スップ Sdea-rE82)
2017/06/05(月) 11:54:25.53ID:Sx3XxldLd >>496
プライマリスレッドからでもダメなこと多かったよ。
プライマリスレッドからでもダメなこと多かったよ。
498デフォルトの名無しさん (JP 0H6e-rLqX)
2017/06/05(月) 11:59:36.00ID:bwrXOc4qH499デフォルトの名無しさん (ドコグロ MM12-Tm/A)
2017/06/05(月) 12:54:03.39ID:cR57/ADJM >>495
> COMそのものがマルチスレッドだめなんかね?
COM 自体はアパートメントモデルをちゃんと設定すればマルチスレッドでも動く
http://eternalwindows.jp/com/apartment/apartment01.html
個々のオブジェクトが正しく動作するかどうかはまた別の話
> COMそのものがマルチスレッドだめなんかね?
COM 自体はアパートメントモデルをちゃんと設定すればマルチスレッドでも動く
http://eternalwindows.jp/com/apartment/apartment01.html
個々のオブジェクトが正しく動作するかどうかはまた別の話
500デフォルトの名無しさん (ササクッテロラ Sp3d-mjoq)
2017/06/05(月) 23:38:18.98ID:bd1ggU41p マクロを作成は通常MODULEですが、
Sheet1やThisworkbookに記入するのはどういうときでしょうか。済みません。
Sheet1やThisworkbookに記入するのはどういうときでしょうか。済みません。
501デフォルトの名無しさん (ワッチョイ 4aef-PQPf)
2017/06/06(火) 00:15:48.16ID:d6CS0Xy90 なんでVBAでマルチスレッドにするの
502デフォルトの名無しさん (ワッチョイ 9e23-amhP)
2017/06/06(火) 04:12:26.65ID:NdFOOmMr0 >>501
要望として有るのは待ち状態の時に先に進めるためとか。
ダイアログの中には何らかの操作をしてダイアログ自体を閉じさせないと次のステップに行かない物がある。
そういう時に別スレッドで無限ループ中でそのダイアログが見つかったら操作する処理を動かしてからダイアログ表示させるとか。
例えばメッセージボックス表示させるんだけど10秒間ボタンが押されなかったらキャンセルするとか。
こういうのは上手く書くと動く。
他にも複数の関連しない計算に時間がかかっている時に単純に速度アップのために使いたいと思うかもしれない。
でも動いても趣味のプログラム以外じゃ危なっかしくて使えない。
マルチプロセスで代替えできるものも多いから無理する必要もない。
要望として有るのは待ち状態の時に先に進めるためとか。
ダイアログの中には何らかの操作をしてダイアログ自体を閉じさせないと次のステップに行かない物がある。
そういう時に別スレッドで無限ループ中でそのダイアログが見つかったら操作する処理を動かしてからダイアログ表示させるとか。
例えばメッセージボックス表示させるんだけど10秒間ボタンが押されなかったらキャンセルするとか。
こういうのは上手く書くと動く。
他にも複数の関連しない計算に時間がかかっている時に単純に速度アップのために使いたいと思うかもしれない。
でも動いても趣味のプログラム以外じゃ危なっかしくて使えない。
マルチプロセスで代替えできるものも多いから無理する必要もない。
503デフォルトの名無しさん (ワッチョイ 6a06-k7rq)
2017/06/06(火) 04:20:46.72ID:LBKXQv4G0 >>500
>Sheet1
そのシートをActiveにした時の処理、DeActivateにする時の処理、あるいは
特定のセルにデータを入れた時の処理 etc
>Thisworkbook
ブックの起動時や終了時にDBとの接続処理や切断処理を入れてる
>Sheet1
そのシートをActiveにした時の処理、DeActivateにする時の処理、あるいは
特定のセルにデータを入れた時の処理 etc
>Thisworkbook
ブックの起動時や終了時にDBとの接続処理や切断処理を入れてる
504デフォルトの名無しさん (ワッチョイ 5e6d-zUMb)
2017/06/06(火) 07:54:06.29ID:xLIl+dL/0 sheetやbookに書くのはそのオブジェクトのイベント
使い捨ての整形マクロなんかはsheetに書いてもいいけど、標準モジュールに書いたほうベター
使い捨ての整形マクロなんかはsheetに書いてもいいけど、標準モジュールに書いたほうベター
505デフォルトの名無しさん (アークセー Sx3d-nANo)
2017/06/06(火) 09:05:13.69ID:YhE+Nuz8x >>500
シートやブックのイベントを使用するためだよ
シートやブックのイベントを使用するためだよ
506デフォルトの名無しさん (ワッチョイ bd23-KDIu)
2017/06/06(火) 20:09:22.46ID:Uy4z/eLw0 vlookup等を使用しているとソルバーが使えないらしいのでVBAで作ろうと思っていますが、定番というか定石というか、参考になるサイトややり方等はありますか?
言ってて抽象的だなとは思ってはいますが、どうすべきなのか判らず…よろしくお願いします。
言ってて抽象的だなとは思ってはいますが、どうすべきなのか判らず…よろしくお願いします。
507デフォルトの名無しさん (ワッチョイ 6a6f-E6+r)
2017/06/06(火) 21:53:22.27ID:efHThVDq0 >>500
Thisworkbook.Worksheets(Activesheet.Name).Cells(1,1).Value=1
って書くのが面倒くさくて、
Me.Cells(1,1).Value=1
って書きたい時とか。
Me.も要らねえだろって?
何らかの理由でActivesheetが変わっちゃったら嫌じゃないですか?
Thisworkbook.Worksheets(Activesheet.Name).Cells(1,1).Value=1
って書くのが面倒くさくて、
Me.Cells(1,1).Value=1
って書きたい時とか。
Me.も要らねえだろって?
何らかの理由でActivesheetが変わっちゃったら嫌じゃないですか?
508デフォルトの名無しさん (ササクッテロラ Sp3d-mjoq)
2017/06/06(火) 21:56:25.64ID:vXDpJbBwp 教えてください。
マクロでハイパーリンクを実行したいのですが、セルにリンクを貼る必要がない、ただマクロから実行するだけというとき、どう書けば良いのでしょうか。
マクロでハイパーリンクを実行したいのですが、セルにリンクを貼る必要がない、ただマクロから実行するだけというとき、どう書けば良いのでしょうか。
509デフォルトの名無しさん (ワッチョイ ed46-RkbP)
2017/06/06(火) 22:06:15.37ID:XIE7cY+50510デフォルトの名無しさん (ワッチョイ 6a6f-E6+r)
2017/06/06(火) 22:14:17.43ID:efHThVDq0 そっち?
ハイパーリンクじゃなきゃダメなのか、
飛べば何でもいいのか。
Dim Ie As InternetExplorer
Set Ie = CreateObject("InternetExplorer.Application")
Ie.Visible = True
Ie.Navigate "http://www.google.co.jp/"
ハイパーリンクじゃなきゃダメなのか、
飛べば何でもいいのか。
Dim Ie As InternetExplorer
Set Ie = CreateObject("InternetExplorer.Application")
Ie.Visible = True
Ie.Navigate "http://www.google.co.jp/"
511デフォルトの名無しさん (ワッチョイ 6a6f-E6+r)
2017/06/06(火) 22:21:53.88ID:efHThVDq0 ↑Microsoft Internet Controlsを参照設定しないとだめだわ。
512デフォルトの名無しさん (ワッチョイ 5e6d-hsUK)
2017/06/06(火) 22:53:35.96ID:xLIl+dL/0 >>510
IEではなく、chromeインスタンスを作ることって出来ますか?
IEではなく、chromeインスタンスを作ることって出来ますか?
513デフォルトの名無しさん (アークセー Sx3d-nANo)
2017/06/06(火) 23:09:15.48ID:NPrNQzK4x Dim objShell as Object
Set objShell = CreateObject(“WScript.Shell”)
GC.Run (“chrome.exe -url ” & アクセスしたいページのアドレス)
Set objShell = CreateObject(“WScript.Shell”)
GC.Run (“chrome.exe -url ” & アクセスしたいページのアドレス)
514デフォルトの名無しさん (アークセー Sx3d-nANo)
2017/06/06(火) 23:10:19.79ID:NPrNQzK4x 間違えたので
Dim objShell as Object
Set objShell = CreateObject(“WScript.Shell”)
objShell.Run (“chrome.exe -url ” & アクセスしたいページのアドレス)
Dim objShell as Object
Set objShell = CreateObject(“WScript.Shell”)
objShell.Run (“chrome.exe -url ” & アクセスしたいページのアドレス)
515デフォルトの名無しさん (スプッッ Sded-qcoX)
2017/06/07(水) 00:14:23.17ID:iB9NoSxCd >>507
activesheetがどこだろうとsheetモジュールに書いてんなら関係なかんべ
sheetオブジェクトまで省略できる手抜きコードで済ますのにたまに使ってるわ
あとsheetをコンフィグ書いとくのに使ってるときにプロパティ的な関数を置いといたりな
あまり行儀よくはない自覚はある
activesheetがどこだろうとsheetモジュールに書いてんなら関係なかんべ
sheetオブジェクトまで省略できる手抜きコードで済ますのにたまに使ってるわ
あとsheetをコンフィグ書いとくのに使ってるときにプロパティ的な関数を置いといたりな
あまり行儀よくはない自覚はある
516デフォルトの名無しさん (ブーイモ MM49-JT0G)
2017/06/07(水) 01:08:40.19ID:0NeAqWbNM >>506
詳しくはないけど、VBAでやるものじゃない印象。
Excelのソルバーで収束するように数式を書き換えるか、他の言語やツールを使うのがいいんじゃないかなあ。
「ソルバー アルゴリズム」でググれば色々手段が出てくるよ。
詳しくはないけど、VBAでやるものじゃない印象。
Excelのソルバーで収束するように数式を書き換えるか、他の言語やツールを使うのがいいんじゃないかなあ。
「ソルバー アルゴリズム」でググれば色々手段が出てくるよ。
517デフォルトの名無しさん (ワッチョイ 7d6d-28Zt)
2017/06/08(木) 01:09:56.48ID:eFwaOcHQ0 あるサイトのスクロールバーを一番下まで下げて
キャプチャしてシートに貼り付けてトリミング。
同じページにあるフレーム内のスクロールバーを下まで下げて
キャプチャしてシートに貼り付けてトリミング。ってのを
3ページ分位繰り返し行いたいのですが
http://www.vba-ie.net/ie/iescroll.html
この辺とか見てるんですがヒントください
キャプチャしてシートに貼り付けてトリミング。
同じページにあるフレーム内のスクロールバーを下まで下げて
キャプチャしてシートに貼り付けてトリミング。ってのを
3ページ分位繰り返し行いたいのですが
http://www.vba-ie.net/ie/iescroll.html
この辺とか見てるんですがヒントください
518デフォルトの名無しさん (ワッチョイ 5b23-cb7n)
2017/06/08(木) 05:16:07.28ID:1DKX/Vru0 >>517
なんでこんなヘンテコなことしなきゃならんの?
JavaScriptなんて必要無いぞ。
と思ったけど、ちょっと調べてみるとJavaScriptでスクロールしてる例が多いな。
今、試す環境が無いから何とも言えないな。
DOMの勉強するよろし。
なんでこんなヘンテコなことしなきゃならんの?
JavaScriptなんて必要無いぞ。
と思ったけど、ちょっと調べてみるとJavaScriptでスクロールしてる例が多いな。
今、試す環境が無いから何とも言えないな。
DOMの勉強するよろし。
519デフォルトの名無しさん (ワッチョイ db6d-D9zB)
2017/06/08(木) 07:40:44.87ID:fJC45ZIB0520デフォルトの名無しさん (ワッチョイ 5b23-cb7n)
2017/06/08(木) 15:33:04.11ID:1DKX/Vru0 >>519
キーボードマクロは危険だよ。
動いてる最中にマウスクリックとかすると場合により大変なことになる。
操作は難しくないけどキャプチャをどうするかで難しくなるかも。
自分だったら難しい方法を選択するので。
キーボードマクロは危険だよ。
動いてる最中にマウスクリックとかすると場合により大変なことになる。
操作は難しくないけどキャプチャをどうするかで難しくなるかも。
自分だったら難しい方法を選択するので。
521デフォルトの名無しさん (アウアウイー Saf1-ptyI)
2017/06/08(木) 20:37:38.86ID:HogApBmCa VBA初心者です
For Nextループのカウンタ変数について質問です
1) データの最終行を取得
カウンタ変数の初期値 2、終了値をデータの最終行に設定(仮に11とします)
2) For Nextループで処理
3) ループ終了後、A11セルの値を変数に代入したい
For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row
処理
Next
★変数 = Cells(i, 1).Value
★For Nextループを抜けた直後のカウンタ変数iは、データの最終行(i=11)のはずなので、
そのままCellsプロパティに代入すればA11セルの値を取得できると考えたのですが、
ループ終了時にカウンタ変数iが終了値に+1されて12になってしまいます
「For Nextループ終了後のカウンタ変数iは終了値+1になる」
というのは仕様なのでしょうか?
For Nextループのカウンタ変数について質問です
1) データの最終行を取得
カウンタ変数の初期値 2、終了値をデータの最終行に設定(仮に11とします)
2) For Nextループで処理
3) ループ終了後、A11セルの値を変数に代入したい
For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row
処理
Next
★変数 = Cells(i, 1).Value
★For Nextループを抜けた直後のカウンタ変数iは、データの最終行(i=11)のはずなので、
そのままCellsプロパティに代入すればA11セルの値を取得できると考えたのですが、
ループ終了時にカウンタ変数iが終了値に+1されて12になってしまいます
「For Nextループ終了後のカウンタ変数iは終了値+1になる」
というのは仕様なのでしょうか?
522デフォルトの名無しさん (ワッチョイ dd8b-Loth)
2017/06/08(木) 20:40:46.12ID:TyBSFeDZ0 仕様ではないけど現実はそうなる
523デフォルトの名無しさん (ワッチョイ d543-g/1O)
2017/06/08(木) 20:45:04.87ID:xavUYSpk0 ループ変数が指定の範囲を「越えたら」ループを終了する、というのがForの仕様
524デフォルトの名無しさん (アークセー Sx71-sCoW)
2017/06/08(木) 20:46:19.32ID:x3QO3rgpx >>521
xlupの値を使えばいいでしょ
xlupの値を使えばいいでしょ
525デフォルトの名無しさん (ワッチョイ dd8b-Loth)
2017/06/08(木) 20:46:39.16ID:TyBSFeDZ0 ループ変数が指定の範囲の「間」ループを繰替えす、というのがForの仕様
526デフォルトの名無しさん (アークセー Sx71-5Ux4)
2017/06/08(木) 20:53:59.27ID:ajpliBtkx >>522
仕様だよ
For Nextはカウンタ変数の値が引数endを超過した(または引数endの値未満になった)と判断したときにループ終了になる
Step1でループさせた場合、カウンタ変数がend+1の値になったときに次の処理に移るので、ループを抜けた後のカウンタ変数は当然end+1になる
仕様だよ
For Nextはカウンタ変数の値が引数endを超過した(または引数endの値未満になった)と判断したときにループ終了になる
Step1でループさせた場合、カウンタ変数がend+1の値になったときに次の処理に移るので、ループを抜けた後のカウンタ変数は当然end+1になる
527521 (アウアウイー Saf1-ptyI)
2017/06/08(木) 20:55:48.28ID:HogApBmCa528デフォルトの名無しさん (アークセー Sx71-sCoW)
2017/06/08(木) 20:59:19.38ID:x3QO3rgpx529デフォルトの名無しさん (ワッチョイ 2311-OlK+)
2017/06/08(木) 21:43:39.15ID:ZLqPeRaK0 i = 1
Do While i <= 11
i = i + 1
Loop
みたいなもんだね。
あと言語によってはループ変数(i)がfor文の中だけのスコープで
for文を抜けたら破棄されたりするから、ループ変数はループの中だけで
使う癖をつけておいた方が無難。
Do While i <= 11
i = i + 1
Loop
みたいなもんだね。
あと言語によってはループ変数(i)がfor文の中だけのスコープで
for文を抜けたら破棄されたりするから、ループ変数はループの中だけで
使う癖をつけておいた方が無難。
530デフォルトの名無しさん (ワッチョイ 236f-xcYX)
2017/06/08(木) 21:44:40.10ID:/ZCsTOrv0 別ブックのデータを自動で取り込むプログラムを書いていて思うんだけど、
そういうのが簡単に出来るクラスとかないの?
そういうのが簡単に出来るクラスとかないの?
531デフォルトの名無しさん (ワッチョイ 7d3d-OlK+)
2017/06/08(木) 21:47:25.81ID:XdC3vCwF0 >>530
Workbooks.Open
Workbooks.Open
532デフォルトの名無しさん (ワッチョイ 2311-OlK+)
2017/06/08(木) 21:52:58.35ID:ZLqPeRaK0 >>517
こんな感じかな?
出来るかはわかんないけど。
IEインスタンスを生成する
IEを表示する
IEにURLを送る
IEの表示を待つ
IEのページにフォーカスする
sendkeysで一番下までスクロールする
sendkeysでPrintScreen
0.1秒位待つ
シートに貼り付けてトリミングする
IEのiframeにフォーカスする
sendkeysで一番下までスクロールする
sendkeysでPrintScreen
0.1秒位待つ
シートに貼り付けてトリミングする
以下ループ
キーマクロは俺も考えたけど、エクセルの操作が融通ききにくそう。
UWSCとか使えばいいかもしれないけど、結局VBAで書くのと大差なくなる気がする。
こんな感じかな?
出来るかはわかんないけど。
IEインスタンスを生成する
IEを表示する
IEにURLを送る
IEの表示を待つ
IEのページにフォーカスする
sendkeysで一番下までスクロールする
sendkeysでPrintScreen
0.1秒位待つ
シートに貼り付けてトリミングする
IEのiframeにフォーカスする
sendkeysで一番下までスクロールする
sendkeysでPrintScreen
0.1秒位待つ
シートに貼り付けてトリミングする
以下ループ
キーマクロは俺も考えたけど、エクセルの操作が融通ききにくそう。
UWSCとか使えばいいかもしれないけど、結局VBAで書くのと大差なくなる気がする。
533デフォルトの名無しさん (ワッチョイ 236f-xcYX)
2017/06/08(木) 22:01:50.62ID:/ZCsTOrv0 >>531
そうだけどさ、
自身のファイルを開いてないか?
開いたファイルにフィルタがかかってないか?
開こうとしているファイルは既に開いてないか?
xlsかcsvか?
って、色々チェックするの面倒じゃん。
そうだけどさ、
自身のファイルを開いてないか?
開いたファイルにフィルタがかかってないか?
開こうとしているファイルは既に開いてないか?
xlsかcsvか?
って、色々チェックするの面倒じゃん。
534デフォルトの名無しさん (ワッチョイ db6d-MPbE)
2017/06/08(木) 22:16:37.58ID:fJC45ZIB0 作ればいいんじゃないの
535デフォルトの名無しさん (ワッチョイ 7d3d-OlK+)
2017/06/08(木) 22:40:42.97ID:XdC3vCwF0 >>533
Function foo1(FilePath As String) As Workbook
For Each x In Workbooks
If x.FullName = FilePath Then Set foo1 = x: Exit For
Next
If foo1 Is Nothing Then Set foo1 = Workbooks.Open(FilePath)
End Function
Function foo2(WS As Workbook, SheetName As String) As Worksheet
For Each x In WS.Worksheets
If x.Name Like SheetName Then Set foo2 = x: Exit For
Next
If Not foo2 Is Nothing Then foo2.AutoFilterMode = False
End Function
こんなんだろ。大した手間でもないと思うんだけど。
俺はモジュール一個にワークブック、ワークシート、セルの各種チェック含めた操作関係まとめてたけど、
二十個くらいにしかならなかったぞ。
Function foo1(FilePath As String) As Workbook
For Each x In Workbooks
If x.FullName = FilePath Then Set foo1 = x: Exit For
Next
If foo1 Is Nothing Then Set foo1 = Workbooks.Open(FilePath)
End Function
Function foo2(WS As Workbook, SheetName As String) As Worksheet
For Each x In WS.Worksheets
If x.Name Like SheetName Then Set foo2 = x: Exit For
Next
If Not foo2 Is Nothing Then foo2.AutoFilterMode = False
End Function
こんなんだろ。大した手間でもないと思うんだけど。
俺はモジュール一個にワークブック、ワークシート、セルの各種チェック含めた操作関係まとめてたけど、
二十個くらいにしかならなかったぞ。
536デフォルトの名無しさん (ワッチョイ dd8b-Kuea)
2017/06/08(木) 23:01:17.07ID:TyBSFeDZ0537デフォルトの名無しさん (ワッチョイ db6d-qkek)
2017/06/08(木) 23:08:59.28ID:fJC45ZIB0 Function foo1(FilePath As String) As Workbook
on error resume next
この魔法の一行で全て解決
on error resume next
この魔法の一行で全て解決
538デフォルトの名無しさん (ワッチョイ 7d3d-OlK+)
2017/06/08(木) 23:28:03.30ID:XdC3vCwF0 On Errorだと原因が分からないからなぁ。
単純なマクロならそれでもいいんだけど。
単純なマクロならそれでもいいんだけど。
539デフォルトの名無しさん (ワッチョイ 2311-OlK+)
2017/06/08(木) 23:37:56.75ID:ZLqPeRaK0540デフォルトの名無しさん (ドコグロ MM13-UHXl)
2017/06/08(木) 23:41:02.10ID:q8X0hO01M application.runをaccessから呼んだんだけど、
activateしないと失敗してしまう。
あと、マクロを保持してるブックを開いてマクロを実行すると処理中はブックを触れないが、accessから呼ぶと触れてしまう。
おかげで処理に失敗するので、何とかならないだろうか。
activateしないと失敗してしまう。
あと、マクロを保持してるブックを開いてマクロを実行すると処理中はブックを触れないが、accessから呼ぶと触れてしまう。
おかげで処理に失敗するので、何とかならないだろうか。
541デフォルトの名無しさん (ワッチョイ 7d3d-OlK+)
2017/06/08(木) 23:47:27.35ID:XdC3vCwF0542デフォルトの名無しさん (ワッチョイ 0332-Ell8)
2017/06/09(金) 03:33:36.27ID:Vt79/8Sl0 アクセル
543デフォルトの名無しさん (ワッチョイ 5b23-cb7n)
2017/06/09(金) 04:45:48.88ID:e02rbmqe0 >>532
キーマクロもSendkeysもやめた方が良い。
Sendkeys等は宛先を指定しない。
VBA動作中でもアクティブウィンドウは操作で変更出来る。
IEのスクロールはページ表示後もDOMで出来る。
'1ページ高さ
lngPH=objIE.Document.DocumentElement.ClientHeight
'サイト高さ
lngBH=objIE.Document.Body.ScrollHeight
'1ページスクロール
objIE.DocumentParentWindow.ScrollTo 0, lngPH
キーマクロもSendkeysもやめた方が良い。
Sendkeys等は宛先を指定しない。
VBA動作中でもアクティブウィンドウは操作で変更出来る。
IEのスクロールはページ表示後もDOMで出来る。
'1ページ高さ
lngPH=objIE.Document.DocumentElement.ClientHeight
'サイト高さ
lngBH=objIE.Document.Body.ScrollHeight
'1ページスクロール
objIE.DocumentParentWindow.ScrollTo 0, lngPH
544デフォルトの名無しさん (ドコグロ MM13-W6lL)
2017/06/09(金) 07:54:37.94ID:SNIZYBKJM >>542
なんかふと笑った
なんかふと笑った
545デフォルトの名無しさん (ワッチョイ 9d73-2i+1)
2017/06/09(金) 11:39:02.72ID:MW/jqskx0 excelで直接DBに接続してSQLの何が地獄なんだろう…
546デフォルトの名無しさん (アークセー Sx71-sCoW)
2017/06/09(金) 12:02:22.23ID:KaOScHzEx547デフォルトの名無しさん (ワッチョイ 7d3d-OlK+)
2017/06/09(金) 12:08:37.61ID:6C6XVn6H0548デフォルトの名無しさん (ワキゲー MM13-S7v4)
2017/06/09(金) 12:17:15.07ID:lNiKtgPwM >>546
ジンバブエドルってもう回収済みだから割と価値高いよな
ジンバブエドルってもう回収済みだから割と価値高いよな
549デフォルトの名無しさん (ワッチョイ 7d3d-OlK+)
2017/06/09(金) 12:23:12.97ID:6C6XVn6H0 今の1ジンバブエドル=0.3円らしいから、100億ジンバブエドル=30億円かな
550デフォルトの名無しさん (ドコグロ MM13-UHXl)
2017/06/09(金) 12:48:37.15ID:8EXeePojM >>541
access起点で作ってるらもう駄目だー。
access起点で作ってるらもう駄目だー。
551デフォルトの名無しさん (ブーイモ MMa9-+CHm)
2017/06/09(金) 12:52:52.49ID:jWLsfRM+M 素人にVBAを教えるとき
いきなりRange()とするんじゃなく
Workbooks("うんたら")〜.RangeやCells
と、ちゃんと上位層の指定を書くんよ!
って最初から教えるべき?
それとも慣れてから教えるべき?
いきなりRange()とするんじゃなく
Workbooks("うんたら")〜.RangeやCells
と、ちゃんと上位層の指定を書くんよ!
って最初から教えるべき?
それとも慣れてから教えるべき?
552デフォルトの名無しさん (ワッチョイ 3546-MFns)
2017/06/09(金) 14:03:55.81ID:DLo2rfbX0553デフォルトの名無しさん (JP 0H6b-m0Mh)
2017/06/09(金) 14:16:07.35ID:ehLmIvolH >>552
普通に、「シートモジュールから自分のシートを参照するときは不要、それ以外は必要」と教えれば?
普通に、「シートモジュールから自分のシートを参照するときは不要、それ以外は必要」と教えれば?
554デフォルトの名無しさん (ワッチョイ 7d3d-OlK+)
2017/06/09(金) 14:20:33.43ID:6C6XVn6H0555552 (ワッチョイ 3546-MFns)
2017/06/09(金) 14:43:26.16ID:DLo2rfbX0556デフォルトの名無しさん (アウアウエー Sa93-qAom)
2017/06/09(金) 14:48:22.03ID:LCUpZwW2a■ このスレッドは過去ログ倉庫に格納されています
ニュース
- テレビ朝日 本社から男性が転落し死亡。関連会社社員か 当たった通行人が左肩軽傷 [阿弥陀ヶ峰★]
- 高市首相、トランプ米大統領に「早期に会いたい」 日中関係悪化受け… ★4 [BFU★]
- 【コメ】卸売業者「簡単に安売りできない」「大暴落起きれば大赤字に」 JA「新米の販売進度が近年になく遅い。コメの回転が悪い」 ★5 [Hitzeschleier★]
- テレビ朝日本社から20~30代の関連会社社員とみられる男性が転落し死亡 六本木けやき坂通りの通行人にはけが人なし [少考さん★]
- 「これいいじゃん!!!」 セブン-イレブンの1620円で買える“1人用クリスマスケーキ”🎂に注目殺到「天才すぎる」 [パンナ・コッタ★]
- 高市早苗首相が天理教系企業に“巨額発注” 総額5000万円 本人は「政治団体の活動に必要な支出」と回答 ★2 [Hitzeschleier★]
- 【高市速報】中国、最後通牒 [308389511]
- 「〜だろ」って言い方やめないか?「でしょ」とか「だよね」にしようぜ [793117252]
- 【速報】テレビ朝日本社から20代〜30代の男性が飛び降り自殺して死亡 東京・六本木 [597533159]
- お前らダウナー系だよな
- 現役JKのお茶会スレ( ¨̮ )︎︎𖠚ᐝ182
- 精液がゼリー状で黄ばんでるせいで女と付き合う勇気ない
