!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/64l0510デフォルトの名無しさん (ワッチョイ 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:LCUpZwW2a557デフォルトの名無しさん (アウアウエー Sa93-qAom)
2017/06/09(金) 14:50:28.52ID:LCUpZwW2a558デフォルトの名無しさん (JP 0H6b-m0Mh)
2017/06/09(金) 14:56:10.12ID:ehLmIvolH >>555
> Cells Rangeの前には必ず上位層を指定する癖を 付けさせた方がいいと俺は思う
に対する俺の意見なんで、アンカーは間違ってないよ。
> Me.Range(・・・・) と教えた方が良いと思うんだけど
これにも反対。
MSが言うように、実引数のときのみ使う方がわかりやすい。
https://msdn.microsoft.com/ja-jp/library/office/gg251792(v=office.15).aspx
そうしないとMeだらけになる。
> Cells Rangeの前には必ず上位層を指定する癖を 付けさせた方がいいと俺は思う
に対する俺の意見なんで、アンカーは間違ってないよ。
> Me.Range(・・・・) と教えた方が良いと思うんだけど
これにも反対。
MSが言うように、実引数のときのみ使う方がわかりやすい。
https://msdn.microsoft.com/ja-jp/library/office/gg251792(v=office.15).aspx
そうしないとMeだらけになる。
559552 (ワッチョイ 3546-MFns)
2017/06/09(金) 15:00:45.88ID:DLo2rfbX0560デフォルトの名無しさん (ワッチョイ 7d3d-OlK+)
2017/06/09(金) 15:05:08.05ID:6C6XVn6H0 Range(Cells,Cells)の教え方が本題じゃないし、
かといってエラーの網羅なんか現実的じゃないしで、
本題に沿わない意見ってだけだからな。
そもそも同じ話してないから否定も何も話し合いにならないぞ。
かといってエラーの網羅なんか現実的じゃないしで、
本題に沿わない意見ってだけだからな。
そもそも同じ話してないから否定も何も話し合いにならないぞ。
561デフォルトの名無しさん (JP 0H6b-m0Mh)
2017/06/09(金) 15:16:13.50ID:ehLmIvolH >>559
まぁ、俺は全力で君の意見を否定するけどね。
まぁ、俺は全力で君の意見を否定するけどね。
562デフォルトの名無しさん (ワッチョイ 0332-Ell8)
2017/06/09(金) 16:06:32.05ID:Vt79/8Sl0 これにて終了
563デフォルトの名無しさん (ワッチョイ db6d-yT0o)
2017/06/09(金) 19:01:42.64ID:8JxPJdKv0 >>551
慣れてからは省略することが無くなった。そんなしょーもないとこで手を抜くとミスする確率が跳ね上がる
その分setは多用するけどね
set 集計シート = sheets("total")
集計シート.cells(1,1)
慣れてからは省略することが無くなった。そんなしょーもないとこで手を抜くとミスする確率が跳ね上がる
その分setは多用するけどね
set 集計シート = sheets("total")
集計シート.cells(1,1)
564デフォルトの名無しさん (ワッチョイ dd8b-Loth)
2017/06/09(金) 21:53:45.20ID:yARYpVIR0 >>563
sheetsは省略しとるけどええんかこれで?
sheetsは省略しとるけどええんかこれで?
565デフォルトの名無しさん (ワッチョイ 0332-Ell8)
2017/06/09(金) 21:53:49.39ID:Vt79/8Sl0 Set 集計シート = Sheets("Total")
集計シート.Cells(1, 1)
集計シート.Cells(1, 1)
566デフォルトの名無しさん (ワッチョイ db6d-RrxM)
2017/06/09(金) 22:01:02.57ID:8JxPJdKv0 >>564
自分の信じた道を進めばいい
もし君の不注意が多いなら、いつか俺と同じ表記になる
sheetを書こうが書くまいが絶対にミスしないなら、sheetはずっと書かないのだろう
それはそれでいいことだと思う
自分の信じた道を進めばいい
もし君の不注意が多いなら、いつか俺と同じ表記になる
sheetを書こうが書くまいが絶対にミスしないなら、sheetはずっと書かないのだろう
それはそれでいいことだと思う
567デフォルトの名無しさん (ワッチョイ dd8b-Loth)
2017/06/09(金) 22:04:36.45ID:yARYpVIR0568デフォルトの名無しさん (ワッチョイ db6d-RrxM)
2017/06/09(金) 22:12:56.26ID:8JxPJdKv0 >>567
/(^o^)\
単独ブックならbook名は省略するかな
単独シートでマクロを使う場合は省略はしない。拡張した時に大抵必要になるし、そのパターンが多い
で、複数のブックを使う場合は必ずsetする
set 設定シート = thisworkbook.sheets("設定シート")
set 転記元ブック = workbooks.open("転記元ブック")
set 転記元シート = workbooks.open("転記元ブック").sheets("転記元シート")
set 転記先シート = workbooks.open("転記先ブック").sheets("転記先シート")
大体こんな感じでsetしてから使うかな
俺の癖で、設定はマクロファイルに入れるので、thisworkbookだけはそのまま使う事が多い
/(^o^)\
単独ブックならbook名は省略するかな
単独シートでマクロを使う場合は省略はしない。拡張した時に大抵必要になるし、そのパターンが多い
で、複数のブックを使う場合は必ずsetする
set 設定シート = thisworkbook.sheets("設定シート")
set 転記元ブック = workbooks.open("転記元ブック")
set 転記元シート = workbooks.open("転記元ブック").sheets("転記元シート")
set 転記先シート = workbooks.open("転記先ブック").sheets("転記先シート")
大体こんな感じでsetしてから使うかな
俺の癖で、設定はマクロファイルに入れるので、thisworkbookだけはそのまま使う事が多い
569デフォルトの名無しさん (ワッチョイ 250d-kOr2)
2017/06/09(金) 22:15:20.46ID:dxrWbrOn0 worksheetsをsheetsと略してるのはどうなの?ってことだろ
570デフォルトの名無しさん (ワッチョイ db6d-qkek)
2017/06/09(金) 22:21:42.71ID:8JxPJdKv0571デフォルトの名無しさん (ワッチョイ 236f-xcYX)
2017/06/09(金) 22:24:19.15ID:w6iYvsph0 面白いな。
そんな書き方あったのかよっていう例が色々。
でも、Openしたブックを直接セットしちゃったら、
ReadOnlyとかできるの?
そんな書き方あったのかよっていう例が色々。
でも、Openしたブックを直接セットしちゃったら、
ReadOnlyとかできるの?
572デフォルトの名無しさん (ワッチョイ 5b23-cb7n)
2017/06/09(金) 22:26:44.97ID:e02rbmqe0 必ずBookも省略しない。
慣れだね。
気分でSetもWithも使わずに物凄い長い文を書くこともある。
ー度動かしてから修正するけどね。
慣れだね。
気分でSetもWithも使わずに物凄い長い文を書くこともある。
ー度動かしてから修正するけどね。
573デフォルトの名無しさん (ワッチョイ db6d-qkek)
2017/06/09(金) 22:28:37.54ID:8JxPJdKv0 >>571
https://msdn.microsoft.com/ja-jp/library/office/ff194819.aspx
3つめの引数で設定できるよ
Workbooks.Open(path,,true)
多分これで読み取り専用になる(はず)
https://msdn.microsoft.com/ja-jp/library/office/ff194819.aspx
3つめの引数で設定できるよ
Workbooks.Open(path,,true)
多分これで読み取り専用になる(はず)
574デフォルトの名無しさん (ワッチョイ 5b23-cb7n)
2017/06/09(金) 22:30:26.13ID:e02rbmqe0 >>571
Open時に引き数として与えればOK
Open時に引き数として与えればOK
575デフォルトの名無しさん (ワッチョイ e511-qAom)
2017/06/10(土) 09:26:47.69ID:+HgNy1AT0 単独ブックで使うときだってブックは省略しない方がいいに決まってるだろ
ユーザーがどんな使い方するかなんてこっちで管理できないんだから
そもそも大した手間じゃねえし
ユーザーがどんな使い方するかなんてこっちで管理できないんだから
そもそも大した手間じゃねえし
576551 (ブーイモ MMa9-+CHm)
2017/06/10(土) 10:06:36.80ID:0yj13WovM やはり、最後にはちゃんと指定を教えることにはなりますよね。
とりあえず、プログラミングが簡単って感じで入れればいいかなと思って
最初から細かく行くと嫌になってしまわないか?というところで悩むところ、、、
でも、全部上位から書くって別に複雑では無いんよね、、、
とりあえず、プログラミングが簡単って感じで入れればいいかなと思って
最初から細かく行くと嫌になってしまわないか?というところで悩むところ、、、
でも、全部上位から書くって別に複雑では無いんよね、、、
577デフォルトの名無しさん (アークセー Sx71-5Ux4)
2017/06/10(土) 10:17:23.18ID:WC+0mLwsx RangeとかCellsとか使うコードを書かせることは、コード量が少なくなるから一見エクセルマクロやプログラミングの初学者向きに見えるが、後々オブジェクトモデル理解の妨げになる
578デフォルトの名無しさん (ワッチョイ 1523-2i+1)
2017/06/10(土) 10:53:33.63ID:fc8/KSyR0579551 (ブーイモ MMa9-+CHm)
2017/06/10(土) 10:55:41.58ID:0yj13WovM コード量のために
withやsetを教えるとまた最初に覚えないといけないことが増えるし。
インデントも教えないといけなくて、、、
悩む、、
withやsetを教えるとまた最初に覚えないといけないことが増えるし。
インデントも教えないといけなくて、、、
悩む、、
580デフォルトの名無しさん (ワッチョイ 2311-W6lL)
2017/06/10(土) 11:32:19.99ID:1OFjIP+40 >>579
With はともかく Set はおまじないレベルでもいいので教えておくべきだ思う
With はともかく Set はおまじないレベルでもいいので教えておくべきだ思う
581デフォルトの名無しさん (アークセー Sx71-5Ux4)
2017/06/10(土) 11:34:39.43ID:WC+0mLwsx582デフォルトの名無しさん (ワッチョイ 5b23-cb7n)
2017/06/10(土) 11:59:16.65ID:7onqK0zV0 住所と一緒。
いきなり中央区と言われても「どこの?」となる。
ブックから指定した方が曖昧さが無くなる。
いきなり中央区と言われても「どこの?」となる。
ブックから指定した方が曖昧さが無くなる。
583デフォルトの名無しさん (ワッチョイ 2311-W6lL)
2017/06/10(土) 12:02:23.03ID:1OFjIP+40584デフォルトの名無しさん (ワッチョイ 2391-mrwT)
2017/06/10(土) 12:18:14.91ID:FN/PeeFU0 既定クラスの間違いかも
585デフォルトの名無しさん (ワッチョイ bd54-kblr)
2017/06/10(土) 12:21:14.78ID:33ScHThx0 ちゃんとLetを書こう
586デフォルトの名無しさん (オッペケ Sr71-Kuea)
2017/06/10(土) 12:22:40.92ID:7x8i6naHr でもなあ…このスレで上から目線で偉そうに語ってるやつは例外なく>>581レベルなんやで…かなりマジに…
587デフォルトの名無しさん (ドコグロ MM13-W6lL)
2017/06/10(土) 12:38:07.24ID:6tSezeKAM588デフォルトの名無しさん (ワッチョイ 2391-mrwT)
2017/06/10(土) 12:41:29.80ID:FN/PeeFU0589デフォルトの名無しさん (ドコグロ MM13-W6lL)
2017/06/10(土) 12:57:48.98ID:6tSezeKAM >>588
そんなアホな返しは要らんからあると言うなら定義してあるところ教えて
そんなアホな返しは要らんからあると言うなら定義してあるところ教えて
590デフォルトの名無しさん (ワッチョイ 2391-mrwT)
2017/06/10(土) 13:13:15.38ID:FN/PeeFU0591デフォルトの名無しさん (ワッチョイ 2311-W6lL)
2017/06/10(土) 13:30:09.52ID:1OFjIP+40 >>590
ひょっとしてクラスとオブジェクト/インスタンスの区別もついてないのか?
ひょっとしてクラスとオブジェクト/インスタンスの区別もついてないのか?
592デフォルトの名無しさん (ワッチョイ 1523-2i+1)
2017/06/10(土) 13:33:07.94ID:fc8/KSyR0 自作の造語を常識のように語られても…
593デフォルトの名無しさん (ワッチョイ 7de4-yugn)
2017/06/10(土) 14:04:53.91ID:blUYIu4Y0594デフォルトの名無しさん (ワッチョイ 2391-mrwT)
2017/06/10(土) 14:10:07.47ID:FN/PeeFU0 >>592
私は581じゃないけどな
私は581じゃないけどな
595デフォルトの名無しさん (ワッチョイ 2391-mrwT)
2017/06/10(土) 14:11:14.32ID:FN/PeeFU0 >>593
既定のクラスを想定できる状況で使うんじゃね?
既定のクラスを想定できる状況で使うんじゃね?
596デフォルトの名無しさん (ドコグロ MM13-UHXl)
2017/06/10(土) 14:15:13.25ID:aQSdDkWeM なぜオブジェクトを代入するとき、setをつけないといけないんでしょうか?
他の言語ではそんなことないのに
他の言語ではそんなことないのに
597デフォルトの名無しさん (ワッチョイ 2391-mrwT)
2017/06/10(土) 14:21:16.85ID:FN/PeeFU0598デフォルトの名無しさん (ワッチョイ db6d-PV39)
2017/06/10(土) 14:33:18.65ID:kwqfnDcj0599デフォルトの名無しさん (ワッチョイ 2391-mrwT)
2017/06/10(土) 14:40:44.58ID:FN/PeeFU0 >>598
旗色が悪くなると誤魔化すんだなw
旗色が悪くなると誤魔化すんだなw
600デフォルトの名無しさん (ワッチョイ 2306-OlK+)
2017/06/10(土) 14:41:38.33ID:VN5tpTLe0 >>596
VBAではそういうルールになってるから。嫌なら使わなければOK
VBAではそういうルールになってるから。嫌なら使わなければOK
601デフォルトの名無しさん (ワッチョイ 1523-OlK+)
2017/06/10(土) 14:42:49.77ID:fc8/KSyR0 それでうまく誤魔化したつもりなのか・・・
嘘に嘘を重ねて、引っ込みがつかない状態で強がられても・・・
嘘に嘘を重ねて、引っ込みがつかない状態で強がられても・・・
602デフォルトの名無しさん (ワッチョイ 2311-W6lL)
2017/06/10(土) 15:12:00.04ID:1OFjIP+40 >>597
それ抽象化じゃなくて単なる省略だろ w
それ抽象化じゃなくて単なる省略だろ w
603デフォルトの名無しさん (ワッチョイ 5b23-cb7n)
2017/06/10(土) 15:16:38.87ID:7onqK0zV0 >>596
Dim str1 As String
str1=Range("A1")
Debug.Print str1
は分かるよね。
Dim var1 As Varient
var1=Range("A1")
Debug.Print var1
も分かるでしょ。
じゃ、
Dim var2 As Varient
var2=Range("A1")
Debug.Print var2.Left
というのは有り得るかという話。
Setが無いと誤解が増えるよ。
Dim str1 As String
str1=Range("A1")
Debug.Print str1
は分かるよね。
Dim var1 As Varient
var1=Range("A1")
Debug.Print var1
も分かるでしょ。
じゃ、
Dim var2 As Varient
var2=Range("A1")
Debug.Print var2.Left
というのは有り得るかという話。
Setが無いと誤解が増えるよ。
604デフォルトの名無しさん (ワッチョイ 7de4-yugn)
2017/06/10(土) 16:09:54.37ID:blUYIu4Y0 Setが必要な理由は、デフォルトプロパティへのアクセスなのかオブジェクト(参照)へのアクセスなのか区別できないから
ちなみに、VB6ではSetは必要だったが、VB.NETではSetは無くなった
その代わりに、デフォルトプロパティが廃止された
ちなみに、VB6ではSetは必要だったが、VB.NETではSetは無くなった
その代わりに、デフォルトプロパティが廃止された
605デフォルトの名無しさん (ワッチョイ 7de4-yugn)
2017/06/10(土) 16:14:05.66ID:blUYIu4Y0 >>595
俺にはVBAで既定のクラスと言う物を想定できる場面がないからきいてるんだがな
俺にはVBAで既定のクラスと言う物を想定できる場面がないからきいてるんだがな
606デフォルトの名無しさん (ワッチョイ db6d-yT0o)
2017/06/10(土) 16:23:44.38ID:kwqfnDcj0607デフォルトの名無しさん (ワッチョイ e511-mrwT)
2017/06/10(土) 17:09:39.63ID:39iXd9D70 >>602
本当にアホなんだな
本当にアホなんだな
608デフォルトの名無しさん (スップ Sd03-3C0K)
2017/06/10(土) 17:10:45.65ID:LZTdgH18d Setなあ...
IsObject 判定が必要になる状況ではいつもウザいと感じる
IsObject 判定が必要になる状況ではいつもウザいと感じる
609デフォルトの名無しさん (ワッチョイ a3b3-YGYj)
2017/06/10(土) 17:23:02.47ID:F7MRd5sO0 VBAしか知らない俺なんかからしたらSetなんか当たり前じゃんとしか思わん。
ところで、「既定のクラス」って何?
ところで、「既定のクラス」って何?
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- テレビ朝日 本社から男性が転落し死亡。関連会社社員か 当たった通行人が左肩軽傷 [阿弥陀ヶ峰★]
- テレビ朝日本社から20~30代の関連会社社員とみられる男性が転落し死亡 六本木けやき坂通りの通行人にはけが人なし [少考さん★]
- 小島瑠璃子さん、代表取締役を務める会社を破産申請 [牛丼★]
- 「残クレ」でマイホーム、国が銀行向け保険 新型住宅ローン普及促す -日経 ★3 [少考さん★]
- 【サッカー】日本代表、FIFAランキング“4位”の強豪イングランドとの対戦が正式決定! 来年3月に聖地ウェンブリーで激突へ [久太郎★]
- 日本、G7への中国招待を懸念 議長国フランスに慎重な対応要請 [どどん★]
