[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 02/26 17:48 / Filesize : 310 KB / Number-of Response : 1035
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Excel VBA 質問スレ Part48



1 名前:デフォルトの名無しさん [2017/05/16(火) 08:24:45.78 ID:iIGA/64l0.net]
!extend:checked:vvvvv:1000:512

スレ立ての際は一行目に
!extend:checked:vvvvv:1000:512
と入れてスレ立てして下さい

ExcelのVBAに関する質問スレです
コード書き込みや作成依頼もOK

※前スレ
Excel VBA 質問スレ Part47 [無断転載禁止]©2ch.net
echo.2ch.net/test/read.cgi/tech/1489557874/

※関連スレ
VBAなんでも質問スレ Part2
echo.2ch.net/test/read.cgi/tech/1432173164/
Access VBA 質問スレ Part1
echo.2ch.net/test/read.cgi/tech/1328536426/
Excel総合相談所 125
echo.2ch.net/test/read.cgi/bsoft/1481369538/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured

528 名前:デフォルトの名無しさん (ワッチョイ 6a6f-E6+r) mailto:sage [2017/06/06(火) 22:21:53.88 ID:efHThVDq0.net]
↑Microsoft Internet Controlsを参照設定しないとだめだわ。

529 名前:デフォルトの名無しさん (ワッチョイ 5e6d-hsUK) mailto:sage [2017/06/06(火) 22:53:35.96 ID:xLIl+dL/0.net]
>>510
IEではなく、chromeインスタンスを作ることって出来ますか?

530 名前:デフォルトの名無しさん (アークセー Sx3d-nANo) mailto:sage [2017/06/06(火) 23:09:15.48 ID:NPrNQzK4x.net]
Dim objShell as Object
Set objShell = CreateObject(“WScript.Shell”)
GC.Run (“chrome.exe -url ” & アクセスしたいページのアドレス)

531 名前:デフォルトの名無しさん (アークセー Sx3d-nANo) mailto:sage [2017/06/06(火) 23:10:19.79 ID:NPrNQzK4x.net]
間違えたので

Dim objShell as Object
Set objShell = CreateObject(“WScript.Shell”)
objShell.Run (“chrome.exe -url ” & アクセスしたいページのアドレス)

532 名前:デフォルトの名無しさん (スプッッ Sded-qcoX) mailto:sage [2017/06/07(水) 00:14:23.17 ID:iB9NoSxCd.net]
>>507
activesheetがどこだろうとsheetモジュールに書いてんなら関係なかんべ

sheetオブジェクトまで省略できる手抜きコードで済ますのにたまに使ってるわ
あとsheetをコンフィグ書いとくのに使ってるときにプロパティ的な関数を置いといたりな
あまり行儀よくはない自覚はある

533 名前:デフォルトの名無しさん (ブーイモ MM49-JT0G) mailto:sage [2017/06/07(水) 01:08:40.19 ID:0NeAqWbNM.net]
>>506
詳しくはないけど、VBAでやるものじゃない印象。
Excelのソルバーで収束するように数式を書き換えるか、他の言語やツールを使うのがいいんじゃないかなあ。
「ソルバー アルゴリズム」でググれば色々手段が出てくるよ。

534 名前:デフォルトの名無しさん (ワッチョイ 7d6d-28Zt) [2017/06/08(木) 01:09:56.48 ID:eFwaOcHQ0.net]
あるサイトのスクロールバーを一番下まで下げて
キャプチャしてシートに貼り付けてトリミング。
同じページにあるフレーム内のスクロールバーを下まで下げて
キャプチャしてシートに貼り付けてトリミング。ってのを
3ページ分位繰り返し行いたいのですが
www.vba-ie.net/ie/iescroll.html
この辺とか見てるんですがヒントください

535 名前:デフォルトの名無しさん (ワッチョイ 5b23-cb7n) mailto:sage [2017/06/08(木) 05:16:07.28 ID:1DKX/Vru0.net]
>>517
なんでこんなヘンテコなことしなきゃならんの?
JavaScriptなんて

536 名前:必要無いぞ。
と思ったけど、ちょっと調べてみるとJavaScriptでスクロールしてる例が多いな。
今、試す環境が無いから何とも言えないな。

DOMの勉強するよろし。
[]
[ここ壊れてます]



537 名前:デフォルトの名無しさん (ワッチョイ db6d-D9zB) mailto:sage [2017/06/08(木) 07:40:44.87 ID:fJC45ZIB0.net]
>>517
パット見たけどかなりめんどくさそう
キーボードマクロの方が良いと思う

538 名前:デフォルトの名無しさん (ワッチョイ 5b23-cb7n) mailto:sage [2017/06/08(木) 15:33:04.11 ID:1DKX/Vru0.net]
>>519
キーボードマクロは危険だよ。
動いてる最中にマウスクリックとかすると場合により大変なことになる。

操作は難しくないけどキャプチャをどうするかで難しくなるかも。
自分だったら難しい方法を選択するので。

539 名前:デフォルトの名無しさん (アウアウイー Saf1-ptyI) mailto:sage [2017/06/08(木) 20:37:38.86 ID:HogApBmCa.net]
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になる」
というのは仕様なのでしょうか?

540 名前:デフォルトの名無しさん (ワッチョイ dd8b-Loth) [2017/06/08(木) 20:40:46.12 ID:TyBSFeDZ0.net]
仕様ではないけど現実はそうなる

541 名前:デフォルトの名無しさん (ワッチョイ d543-g/1O) mailto:sage [2017/06/08(木) 20:45:04.87 ID:xavUYSpk0.net]
ループ変数が指定の範囲を「越えたら」ループを終了する、というのがForの仕様

542 名前:デフォルトの名無しさん (アークセー Sx71-sCoW) mailto:sage [2017/06/08(木) 20:46:19.32 ID:x3QO3rgpx.net]
>>521
xlupの値を使えばいいでしょ

543 名前:デフォルトの名無しさん (ワッチョイ dd8b-Loth) [2017/06/08(木) 20:46:39.16 ID:TyBSFeDZ0.net]
ループ変数が指定の範囲の「間」ループを繰替えす、というのがForの仕様

544 名前:デフォルトの名無しさん (アークセー Sx71-5Ux4) mailto:sage [2017/06/08(木) 20:53:59.27 ID:ajpliBtkx.net]
>>522
仕様だよ
For Nextはカウンタ変数の値が引数endを超過した(または引数endの値未満になった)と判断したときにループ終了になる
Step1でループさせた場合、カウンタ変数がend+1の値になったときに次の処理に移るので、ループを抜けた後のカウンタ変数は当然end+1になる

545 名前:521 (アウアウイー Saf1-ptyI) mailto:sage [2017/06/08(木) 20:55:48.28 ID:HogApBmCa.net]
お答えありがとうございます

>>523,525-526さんがおっしゃってるようなことかなー、と思ったのですが
カウンタ変数は終了値を維持するという謎の思い込みがあったので
詳しい方々にきちんと教えていただけて有り難いです

>>524
ごり押しでi=i-1とするつもりでしたが断然スマートですね
というか、最終行取得のCells(Rows.Count, 1).End(xlUp).Rowも定型文のように覚えていたので、
きちんと構文の意味と動作を調べ直します

546 名前:デフォルトの名無しさん (アークセー Sx71-sCoW) mailto:sage [2017/06/08(木) 20:59:19.38 ID:x3QO3rgpx.net]
>>527
へっ
良いってことよ!
達者でな



547 名前:デフォルトの名無しさん (ワッチョイ 2311-OlK+) mailto:sage [2017/06/08(木) 21:43:39.15 ID:ZLqPeRaK0.net]
i = 1
Do While i <= 11
i = i + 1
Loop

みたいなもんだね。
あと言語によってはループ変数(i)がfor文の中だけのスコープで
for文を抜けたら破棄されたりするから、ループ変数はループの中だけで
使う癖をつけておいた方が無難。

548 名前:デフォルトの名無しさん (ワッチョイ 236f-xcYX) mailto:sage [2017/06/08(木) 21:44:40.10 ID:/ZCsTOrv0.net]
別ブックのデータを自動で取り込むプログラムを書いていて思うんだけど、

549 名前:
そういうのが簡単に出来るクラスとかないの?
[]
[ここ壊れてます]

550 名前:デフォルトの名無しさん (ワッチョイ 7d3d-OlK+) mailto:sage [2017/06/08(木) 21:47:25.81 ID:XdC3vCwF0.net]
>>530
Workbooks.Open

551 名前:デフォルトの名無しさん (ワッチョイ 2311-OlK+) mailto:sage [2017/06/08(木) 21:52:58.35 ID:ZLqPeRaK0.net]
>>517
こんな感じかな?
出来るかはわかんないけど。

IEインスタンスを生成する
IEを表示する
IEにURLを送る
IEの表示を待つ
IEのページにフォーカスする
sendkeysで一番下までスクロールする
sendkeysでPrintScreen
0.1秒位待つ
シートに貼り付けてトリミングする
IEのiframeにフォーカスする
sendkeysで一番下までスクロールする
sendkeysでPrintScreen
0.1秒位待つ
シートに貼り付けてトリミングする
以下ループ

キーマクロは俺も考えたけど、エクセルの操作が融通ききにくそう。
UWSCとか使えばいいかもしれないけど、結局VBAで書くのと大差なくなる気がする。

552 名前:デフォルトの名無しさん (ワッチョイ 236f-xcYX) mailto:sage [2017/06/08(木) 22:01:50.62 ID:/ZCsTOrv0.net]
>>531
そうだけどさ、
自身のファイルを開いてないか?
開いたファイルにフィルタがかかってないか?
開こうとしているファイルは既に開いてないか?
xlsかcsvか?
って、色々チェックするの面倒じゃん。

553 名前:デフォルトの名無しさん (ワッチョイ db6d-MPbE) mailto:sage [2017/06/08(木) 22:16:37.58 ID:fJC45ZIB0.net]
作ればいいんじゃないの

554 名前:デフォルトの名無しさん (ワッチョイ 7d3d-OlK+) mailto:sage [2017/06/08(木) 22:40:42.97 ID:XdC3vCwF0.net]
>>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

こんなんだろ。大した手間でもないと思うんだけど。
俺はモジュール一個にワークブック、ワークシート、セルの各種チェック含めた操作関係まとめてたけど、
二十個くらいにしかならなかったぞ。

555 名前:デフォルトの名無しさん (ワッチョイ dd8b-Kuea) [2017/06/08(木) 23:01:17.07 ID:TyBSFeDZ0.net]
>>535
まあそんなもんなら大した手間じゃないよな
それじゃ全然ダメだけど禿

556 名前:デフォルトの名無しさん (ワッチョイ db6d-qkek) mailto:sage [2017/06/08(木) 23:08:59.28 ID:fJC45ZIB0.net]
Function foo1(FilePath As String) As Workbook
on error resume next
この魔法の一行で全て解決



557 名前:デフォルトの名無しさん (ワッチョイ 7d3d-OlK+) mailto:sage [2017/06/08(木) 23:28:03.30 ID:XdC3vCwF0.net]
On Errorだと原因が分からないからなぁ。
単純なマクロならそれでもいいんだけど。

558 名前:デフォルトの名無しさん (ワッチョイ 2311-OlK+) mailto:sage [2017/06/08(木) 23:37:56.75 ID:ZLqPeRaK0.net]
>>535
> If x.FullName = FilePath Then Set foo1 = x: Exit For
これ通るのか…知らなかった…

559 名前:デフォルトの名無しさん (ドコグロ MM13-UHXl) mailto:sage [2017/06/08(木) 23:41:02.10 ID:q8X0hO01M.net]
application.runをaccessから呼んだんだけど、
activateしないと失敗してしまう。

あと、マクロを保持してるブックを開いてマクロを実行すると処理中はブックを触れないが、accessから呼ぶと触れてしまう。

おかげで処理に失敗するので、何とかならないだろうか。

560 名前:デフォルトの名無しさん (ワッチョイ 7d3d-OlK+) mailto:sage [2017/06/08(木) 23:47:27.35 ID:XdC3vCwF0.net]
>>539
コロンが改行の代わりになるから、コロンで区切りさえすればだいたいのものは通るぞ。

>>540
ExcelからAccessを触るようにしよう。
AccessからExcel触るのは管理がくっそ面倒だから(バージョンによるかもしれないが)
修飾付きのエクセルファイル出力がしたいとかでない限りやめた方がいい。

あとはExcelで直接DBを開いてSQLで制御するという地獄の選択肢もあるぞ。

561 名前:デフォルトの名無しさん (ワッチョイ 0332-Ell8) mailto:sage [2017/06/09(金) 03:33:36.27 ID:Vt79/8Sl0.net]
アクセル

562 名前:デフォルトの名無しさん (ワッチョイ 5b23-cb7n) mailto:sage [2017/06/09(金) 04:45:48.88 ID:e02rbmqe0.net]
>>532
キーマクロもSendkeysもやめた方が良い。
Sendkeys等は宛先を指定しない。
VBA動作中でもアクティブウィンドウは操作で変更出来る。

IEのスクロールはページ表示後もDOMで出来る。

'1ページ高さ
lngPH=objIE.Document.DocumentElement.ClientHeight

'サイト高さ
lngBH=objIE.Document.Body.ScrollHeight

'1ページスクロール
objIE.DocumentParentWindow.ScrollTo 0, lngPH

563 名前:デフォルトの名無しさん (ドコグロ MM13-W6lL) mailto:sage [2017/06/09(金) 07:54:37.94 ID:SNIZYBKJM.net]
>>542
なんかふと笑った

564 名前:デフォルトの名無しさん (ワッチョイ 9d73-2i+1) mailto:sage [2017/06/09(金) 11:39:02.72 ID:MW/jqskx0.net]
excelで直接DBに接続してSQLの何が地獄なんだろう…

565 名前:デフォルトの名無しさん (アークセー Sx71-sCoW) mailto:sage [2017/06/09(金) 12:02:22.23 ID:KaOScHzEx.net]
>>545
説明できるほうに100億ドル










ただしジンバブエの

566 名前:デフォルトの名無しさん (ワッチョイ 7d3d-OlK+) mailto:sage [2017/06/09(金) 12:08:37.61 ID:6C6XVn6H0.net]
>>545
Accessと文法が違う
使えない命令がある
エラーが返ってこない
データ型の指定が出来ない

過去スレとかで何度も出たけど、だいたいこの辺の理由で地獄



567 名前:デフォルトの名無しさん (ワキゲー MM13-S7v4) mailto:sage [2017/06/09(金) 12:17:15.07 ID:lNiKtgPwM.net]
>>546
ジンバブエドルってもう回収済みだから割と価値高いよな

568 名前:デフォルトの名無しさん (ワッチョイ 7d3d-OlK+) mailto:sage [2017/06/09(金) 12:23:12.97 ID:6C6XVn6H0.net]
今の1ジンバブエドル=0.3円らしいから、100億ジンバブエドル=30億円かな

569 名前:デフォルトの名無しさん (ドコグロ MM13-UHXl) mailto:sage [2017/06/09(金) 12:48:37.15 ID:8EXeePojM.net]
>>541
access起点で作ってるらもう駄目だー。

570 名前:デフォルトの名無しさん (ブーイモ MMa9-+CHm) [2017/06/09(金) 12:52:52.49 ID:jWLsfRM+M.net]
素人にVBAを教えるとき
いきなりRange()とするんじゃなく

Workbooks("うんたら")〜.RangeやCells
と、ちゃんと上位層の指定を書くんよ!

って最初から教えるべき?
それとも慣れてから教えるべき?

571 名前:デフォルトの名無しさん (ワッチョイ 3546-MFns) mailto:sage [2017/06/09(金) 14:03:55.81 ID:DLo2rfbX0.net]
>>551

>>466 のようなエラーがあるから
Cells Rangeの前には必ず上位層を指定する癖を 付けさせた方がいいと俺は思う

手を抜いて省略するのは慣れてからでもいいんじゃね?

572 名前:デフォルトの名無しさん (JP 0H6b-m0Mh) mailto:sage [2017/06/09(金) 14:16:07.35 ID:ehLmIvolH.net]
>>552
普通に、「シートモジュールから自分のシートを参照するときは不要、それ以外は必要」と教えれば?

573 名前:デフォルトの名無しさん (ワッチョイ 7d3d-OlK+) mailto:sage [2017/06/09(金) 14:20:33.43 ID:6C6XVn6H0.net]
>>551
べったり張り付いてられるなら失敗してから教える方がいい。
PC教室みたいに一過性の教育なら省略しない書き方で覚えさせた方がいい。

574 名前:552 (ワッチョイ 3546-MFns) mailto:sage [2017/06/09(金) 14:43:26.16 ID:DLo2rfbX0.net]
>>553
アンカミスなのか 俺宛てなのか分らが・・・

シートモジュールの場合 省略していいよじゃなくて 自分自身を示すMeを使って
Me.Range(・・・・) と教えた方が良いと思うんだけど

575 名前:デフォルトの名無しさん (アウアウエー Sa93-qAom) mailto:sage [2017/06/09(金) 14:48:22.03 ID:LCUpZwW2a.net]
>>533
fso使って自分で作りゃいいじゃん
難しくないでしょ

576 名前:デフォルトの名無しさん (アウアウエー Sa93-qAom) mailto:sage [2017/06/09(金) 14:50:28.52 ID:LCUpZwW2a.net]
>>551
同時に教える
動かして動かせたらなんでか、というふうに



577 名前:デフォルトの名無しさん (JP 0H6b-m0Mh) mailto:sage [2017/06/09(金) 14:56:10.12 ID:ehLmIvolH.net]
>>555
> Cells Rangeの前には必ず上位層を指定する癖を 付けさせた方がいいと俺は思う
に対する俺の意見なんで、アンカーは間違ってないよ。

> Me.Range(・・・・) と教えた方が良いと思うんだけど
これにも反対。
MSが言うように、実引数のときのみ使う方がわかりやすい。
https://msdn.microsoft.com/ja-jp/library/office/gg251792(v=office.15).aspx
そうしないとMeだらけになる。

578 名前:552 (ワッチョイ 3546-MFns) mailto:sage [2017/06/09(金) 15:00:45.88 ID:DLo2rfbX0.net]
>>558
あい分った
きみの主張を否定するつもりはないよ
でも俺の主張は >>552 で変えるつもりはない

これにて終了

579 名前:デフォルトの名無しさん (ワッチョイ 7d3d-OlK+) mailto:sage [2017/06/09(金) 15:05:08.05 ID:6C6XVn6H0.net]
Range(Cells,Cells)の教え方が本題じゃないし、
かといってエラーの網羅なんか現実的じゃないしで、
本題に沿わない意見ってだけだからな。

そもそも同じ話してないから否定も何も話し合いにならないぞ。

580 名前:デフォルトの名無しさん (JP 0H6b-m0Mh) mailto:sage [2017/06/09(金) 15:16:13.50 ID:ehLmIvolH.net]
>>559
まぁ、俺は全力で君の意見を否定するけどね。

581 名前:デフォルトの名無しさん (ワッチョイ 0332-Ell8) mailto:sage [2017/06/09(金) 16:06:32.05 ID:Vt79/8Sl0.net]
これにて終了

582 名前:デフォルトの名無しさん (ワッチョイ db6d-yT0o) mailto:sage [2017/06/09(金) 19:01:42.64 ID:8JxPJdKv0.net]
>>551
慣れてからは省略することが無くなった。そんなしょーもないとこで手を抜くとミスする確率が跳ね上がる
その分setは多用するけどね

set 集計シート = sheets("total")
集計シート.cells(1,1)

583 名前:デフォルトの名無しさん (ワッチョイ dd8b-Loth) [2017/06/09(金) 21:53:45.20 ID:yARYpVIR0.net]
>>563
sheetsは省略しとるけどええんかこれで?

584 名前:デフォルトの名無しさん (ワッチョイ 0332-Ell8) mailto:sage [2017/06/09(金) 21:53:49.39 ID:Vt79/8Sl0.net]
Set 集計シート = Sheets("Total")
集計シート.Cells(1, 1)

585 名前:デフォルトの名無しさん (ワッチョイ db6d-RrxM) mailto:sage [2017/06/09(金) 22:01:02.57 ID:8JxPJdKv0.net]
>>564
自分の信じた道を進めばいい
もし君の不注意が多いなら、いつか俺と同じ表記になる
sheetを書こうが書くまいが絶対にミスしないなら、sheetはずっと書かないのだろう
それはそれでいいことだと思う

586 名前:デフォルトの名無しさん (ワッチョイ dd8b-Loth) [2017/06/09(金) 22:04:36.45 ID:yARYpVIR0.net]
>>566
あいやーw伝わらんかなw
(デフォルトのワークブック.)sheets()
という表記になってるけどそれはええんか?
という意味やでw



587 名前:デフォルトの名無しさん (ワッチョイ db6d-RrxM) mailto:sage [2017/06/09(金) 22:12:56.26 ID:8JxPJdKv0.net]
>>567
/(^o^)\
単独ブックならbook名は省略するかな
単独シートでマクロを使う場合は省略はしない。拡張した時に大抵必要になるし、そのパターンが多い

で、複数のブックを使う場合は必ずsetする
set 設定シート = thisworkbook.sheets("設定シート")
set 転記元ブック = workbooks.open("転記元ブック")
set 転記元シート = workbooks.open("転記元ブック").sheets("転記元シート")
set 転記先シート = workbooks.open("転記先ブック").sheets("転記先シート")

大体こんな感じでsetしてから使うかな
俺の癖で、設定はマクロファイルに入れるので、thisworkbookだけはそのまま使う事が多い

588 名前:デフォルトの名無しさん (ワッチョイ 250d-kOr2) [2017/06/09(金) 22:15:20.46 ID:dxrWbrOn0.net]
worksheetsをsheetsと略してるのはどうなの?ってことだろ

589 名前:デフォルトの名無しさん (ワッチョイ db6d-qkek) mailto:sage [2017/06/09(金) 22:21:42.71 ID:8JxPJdKv0.net]
>>569
グラフシートやマクロ4..0シートを使うなら問題かもしれないね
俺は使わないからどうでもいいけど

590 名前:デフォルトの名無しさん (ワッチョイ 236f-xcYX) mailto:sage [2017/06/09(金) 22:24:19.15 ID:w6iYvsph0.net]
面白いな。
そんな書き方あったのかよっていう例が色々。

でも、Openしたブックを直接セットしちゃったら、
ReadOnlyとかできるの?

591 名前:デフォルトの名無しさん (ワッチョイ 5b23-cb7n) mailto:sage [2017/06/09(金) 22:26:44.97 ID:e02rbmqe0.net]
必ずBookも省略しない。
慣れだね。
気分でSetもWithも使わずに物凄い長い文を書くこともある。
ー度動かしてから修正するけどね。

592 名前:デフォルトの名無しさん (ワッチョイ db6d-qkek) mailto:sage [2017/06/09(金) 22:28:37.54 ID:8JxPJdKv0.net]
>>571
https://msdn.microsoft.com/ja-jp/library/office/ff194819.aspx
3つめの引数で設定できるよ
Workbooks

593 名前:.Open(path,,true)
多分これで読み取り専用になる(はず)
[]
[ここ壊れてます]

594 名前:デフォルトの名無しさん (ワッチョイ 5b23-cb7n) mailto:sage [2017/06/09(金) 22:30:26.13 ID:e02rbmqe0.net]
>>571
Open時に引き数として与えればOK

595 名前:デフォルトの名無しさん (ワッチョイ e511-qAom) mailto:sage [2017/06/10(土) 09:26:47.69 ID:+HgNy1AT0.net]
単独ブックで使うときだってブックは省略しない方がいいに決まってるだろ
ユーザーがどんな使い方するかなんてこっちで管理できないんだから
そもそも大した手間じゃねえし

596 名前:551 (ブーイモ MMa9-+CHm) [2017/06/10(土) 10:06:36.80 ID:0yj13WovM.net]
やはり、最後にはちゃんと指定を教えることにはなりますよね。

とりあえず、プログラミングが簡単って感じで入れればいいかなと思って
最初から細かく行くと嫌になってしまわないか?というところで悩むところ、、、
でも、全部上位から書くって別に複雑では無いんよね、、、



597 名前:デフォルトの名無しさん (アークセー Sx71-5Ux4) mailto:sage [2017/06/10(土) 10:17:23.18 ID:WC+0mLwsx.net]
RangeとかCellsとか使うコードを書かせることは、コード量が少なくなるから一見エクセルマクロやプログラミングの初学者向きに見えるが、後々オブジェクトモデル理解の妨げになる

598 名前:デフォルトの名無しさん (ワッチョイ 1523-2i+1) mailto:sage [2017/06/10(土) 10:53:33.63 ID:fc8/KSyR0.net]
>>577
は?
自称上級者様はExcelVBAなのにシート使わないの?

599 名前:551 (ブーイモ MMa9-+CHm) [2017/06/10(土) 10:55:41.58 ID:0yj13WovM.net]
コード量のために
withやsetを教えるとまた最初に覚えないといけないことが増えるし。
インデントも教えないといけなくて、、、

悩む、、

600 名前:デフォルトの名無しさん (ワッチョイ 2311-W6lL) mailto:sage [2017/06/10(土) 11:32:19.99 ID:1OFjIP+40.net]
>>579
With はともかく Set はおまじないレベルでもいいので教えておくべきだ思う

601 名前:デフォルトの名無しさん (アークセー Sx71-5Ux4) mailto:sage [2017/06/10(土) 11:34:39.43 ID:WC+0mLwsx.net]
>>578
基底クラスのRange、Cellsは使わない、という意味だよ
RangeクラスやCellsクラスを使う場合は必ず操作対象のブック、シートを指定する

602 名前:デフォルトの名無しさん (ワッチョイ 5b23-cb7n) mailto:sage [2017/06/10(土) 11:59:16.65 ID:7onqK0zV0.net]
住所と一緒。
いきなり中央区と言われても「どこの?」となる。
ブックから指定した方が曖昧さが無くなる。

603 名前:デフォルトの名無しさん (ワッチョイ 2311-W6lL) mailto:sage [2017/06/10(土) 12:02:23.03 ID:1OFjIP+40.net]
>>581
お前は基底クラスの意味をもう一度調べてこい
知ったかかと思ったらそれ以下だったわ w

604 名前:デフォルトの名無しさん (ワッチョイ 2391-mrwT) [2017/06/10(土) 12:18:14.91 ID:FN/PeeFU0.net]
既定クラスの間違いかも

605 名前:デフォルトの名無しさん (ワッチョイ bd54-kblr) mailto:sage [2017/06/10(土) 12:21:14.78 ID:33ScHThx0.net]
ちゃんとLetを書こう

606 名前:デフォルトの名無しさん (オッペケ Sr71-Kuea) [2017/06/10(土) 12:22:40.92 ID:7x8i6naHr.net]
でもなあ…このスレで上から目線で偉そうに語ってるやつは例外なく>>581レベルなんやで…かなりマジに…



607 名前:デフォルトの名無しさん (ドコグロ MM13-W6lL) mailto:sage [2017/06/10(土) 12:38:07.24 ID:6tSezeKAM.net]
>>584
既定クラス?
なにそれ初耳なんだが...

608 名前:デフォルトの名無しさん (ワッチョイ 2391-mrwT) [2017/06/10(土) 12:41:29.80 ID:FN/PeeFU0.net]
>>587
既定は知ってる?

クラスは知ってる?

609 名前:デフォルトの名無しさん (ドコグロ MM13-W6lL) mailto:sage [2017/06/10(土) 12:57:48.98 ID:6tSezeKAM.net]
>>588
そんなアホな返しは要らんからあると言うなら定義してあるところ教えて

610 名前:デフォルトの名無しさん (ワッチョイ 2391-mrwT) [2017/06/10(土) 13:13:15.38 ID:FN/PeeFU0.net]
>>589
既定のクラスのことだろ

既定のプログラム→既定プログラム
既定の値→既定値

日本語が解るなら既定とクラスから類推出来る

611 名前:デフォルトの名無しさん (ワッチョイ 2311-W6lL) mailto:sage [2017/06/10(土) 13:30:09.52 ID:1OFjIP+40.net]
>>590
ひょっとしてクラスとオブジェクト/インスタンスの区別もついてないのか?

612 名前:デフォルトの名無しさん (ワッチョイ 1523-2i+1) mailto:sage [2017/06/10(土) 13:33:07.94 ID:fc8/KSyR0.net]
自作の造語を常識のように語られても…

613 名前:デフォルトの名無しさん (ワッチョイ 7de4-yugn) mailto:sage [2017/06/10(土) 14:04:53.91 ID:blUYIu4Y0.net]
その既定のクラスとやらは、いつどんな状況で使われてるの?

まあ>>581に対してなら、基底クラスより規定クラスの方がまだ納得できる文書になるけどな

614 名前:デフォルトの名無しさん (ワッチョイ 2391-mrwT) [2017/06/10(土) 14:10:07.47 ID:FN/PeeFU0.net]
>>592
私は581じゃないけどな

615 名前:デフォルトの名無しさん (ワッチョイ 2391-mrwT) [2017/06/10(土) 14:11:14.32 ID:FN/PeeFU0.net]
>>593
既定のクラスを想定できる状況で使うんじゃね?

616 名前:デフォルトの名無しさん (ドコグロ MM13-UHXl) mailto:sage [2017/06/10(土) 14:15:13.25 ID:aQSdDkWeM.net]
なぜオブジェクトを代入するとき、setをつけないといけないんでしょうか?

他の言語ではそんなことないのに



617 名前:デフォルトの名無しさん (ワッチョイ 2391-mrwT) [2017/06/10(土) 14:21:16.85 ID:FN/PeeFU0.net]
>>592
赤のペン→赤ペン
青の信号→青信号
自動車の教習所→自動車教習所
机の上→机上

抽象化する知能があれば解るよな

618 名前:デフォルトの名無しさん (ワッチョイ db6d-PV39) mailto:sage [2017/06/10(土) 14:33:18.65 ID:kwqfnDcj0.net]
>>597
痛い
それ以上はやめてくれ、頼む

619 名前: []
[ここ壊れてます]

620 名前:デフォルトの名無しさん (ワッチョイ 2391-mrwT) [2017/06/10(土) 14:40:44.58 ID:FN/PeeFU0.net]
>>598
旗色が悪くなると誤魔化すんだなw

621 名前:デフォルトの名無しさん (ワッチョイ 2306-OlK+) mailto:sage [2017/06/10(土) 14:41:38.33 ID:VN5tpTLe0.net]
>>596
VBAではそういうルールになってるから。嫌なら使わなければOK

622 名前:デフォルトの名無しさん (ワッチョイ 1523-OlK+) mailto:sage [2017/06/10(土) 14:42:49.77 ID:fc8/KSyR0.net]
それでうまく誤魔化したつもりなのか・・・
嘘に嘘を重ねて、引っ込みがつかない状態で強がられても・・・

623 名前:デフォルトの名無しさん (ワッチョイ 2311-W6lL) mailto:sage [2017/06/10(土) 15:12:00.04 ID:1OFjIP+40.net]
>>597
それ抽象化じゃなくて単なる省略だろ w

624 名前:デフォルトの名無しさん (ワッチョイ 5b23-cb7n) mailto:sage [2017/06/10(土) 15:16:38.87 ID:7onqK0zV0.net]
>>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が無いと誤解が増えるよ。

625 名前:デフォルトの名無しさん (ワッチョイ 7de4-yugn) mailto:sage [2017/06/10(土) 16:09:54.37 ID:blUYIu4Y0.net]
Setが必要な理由は、デフォルトプロパティへのアクセスなのかオブジェクト(参照)へのアクセスなのか区別できないから

ちなみに、VB6ではSetは必要だったが、VB.NETではSetは無くなった
その代わりに、デフォルトプロパティが廃止された

626 名前:デフォルトの名無しさん (ワッチョイ 7de4-yugn) [2017/06/10(土) 16:14:05.66 ID:blUYIu4Y0.net]
>>595
俺にはVBAで既定のクラスと言う物を想定できる場面がないからきいてるんだがな



627 名前:デフォルトの名無しさん (ワッチョイ db6d-yT0o) mailto:sage [2017/06/10(土) 16:23:44.38 ID:kwqfnDcj0.net]
>>581
は規定のクラスという謎の単語を使っていたのか?
それとも基底クラスを何かと間違えているのか?
10秒考えたけど分からなかった

628 名前:デフォルトの名無しさん (ワッチョイ e511-mrwT) [2017/06/10(土) 17:09:39.63 ID:39iXd9D70.net]
>>602
本当にアホなんだな






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](;´∀`)<310KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef