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


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

Excel VBA 質問スレ Part61



1 名前:デフォルトの名無しさん mailto:sage [2019/04/25(木) 23:41:03.61 ID:rni/4bMj0.net]
!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512

ExcelのVBAに関する質問スレです
コード書き込みや作成依頼もOK
※前スレ
Excel VBA 質問スレ Part60
https://mevius.5ch.net/test/read.cgi/tech/1552736349/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured

158 名前:デフォルトの名無しさん mailto:sage [2019/05/04(土) 10:33:10.59 ID:qNitGapX0.net]
平均30-40ぐらいじゃないか。余裕で50代もいると思う

159 名前:デフォルトの名無しさん mailto:sage [2019/05/04(土) 13:15:20.53 ID:mcZWq4mnM.net]
5chとしては普通でしょ

160 名前:デフォルトの名無しさん mailto:sage [2019/05/04(土) 14:27:39.19 ID:eVIwB2YR0.net]
むしろ50代とかの方が多いんじゃね?

161 名前:デフォルトの名無しさん mailto:sage [2019/05/05(日) 01:42:39.48 ID:PgstIp0W0.net]
windows3.1時代には既に有ったからね
dos版にもvbaって有ったの?
流石にそこまでは知らないんだけど

162 名前:デフォルトの名無しさん mailto:sage [2019/05/05(日) 07:29:37.96 ID:25zG6vKA0.net]
>>161
> dos版にもvbaって有ったの?
ないでしょ
VBAはExcel 5.0からでそのバージョンにDOSはなかったはず

163 名前:デフォルトの名無しさん mailto:sage [2019/05/05(日) 20:27:43.58 ID:BF8MV8/50.net]
指定する番号の行に
行を新規に追加するには
どう記載すれば、良いですか?

164 名前:デフォルトの名無しさん mailto:sage [2019/05/05(日) 20:41:12.12 ID:XON7SXZQr.net]
row(n).insert
nは数値

165 名前:デフォルトの名無しさん mailto:sage [2019/05/05(日) 20:42:27.10 ID:AcwGW1cm0.net]
>>163
Rows(123).Insert

166 名前:デフォルトの名無しさん mailto:sage [2019/05/05(日) 20:45:05.57 ID:XON7SXZQr.net]
sが抜けてましたね
すまんかった



167 名前:デフォルトの名無しさん mailto:sage [2019/05/05(日) 20:45:39.14 ID:IK0uVtFC0.net]
Dim i As Integer
i = InputBox("数字を入力してください")
Rows(i).Insert Shift:=xlDown

168 名前:デフォルトの名無しさん mailto:sage [2019/05/05(日) 21:40:51.68 ID:BF8MV8/50.net]
皆さん、ありがとう
試して報告させていただきます。

169 名前:デフォルトの名無しさん mailto:sage [2019/05/05(日) 21:45:41.48 ID:BF8MV8/50.net]
>>164
nをfor next
で指定しても、動きますか?

エラーとなり、理由がわからず2日ここで止まってます。

170 名前:デフォルトの名無しさん mailto:sage [2019/05/05(日) 22:22:12.93 ID:jSkSyCW+d.net]
コードも無いしエラーメッセ−ジも無いからエラーはよく分からんが、気になる点を1つ。

n行目に挿入されると、その行は何行目になるのかな?

171 名前:デフォルトの名無しさん mailto:sage [2019/05/05(日) 22:29:34.83 ID:pOOjaEue0.net]
>>169
具体的に何行目に追加したいか書いたほうが良いと思う
一行だけじゃないのか

172 名前:デフォルトの名無しさん mailto:sage [2019/05/05(日) 22:52:12.35 ID:AcwGW1cm0.net]
>>169
たぶん For に Step - が必要な案件と見た

173 名前:デフォルトの名無しさん mailto:sage [2019/05/05(日) 22:56:04.02 ID:AcwGW1cm0.net]
>>169
いっぺんに何行も挿入したいときは
Rows("6:15").Insert
この例では5行と6行の間に10行いっぺんに入れて、元の6行が16行に移動してる

174 名前:デフォルトの名無しさん mailto:sage [2019/05/05(日) 22:59:30.01 ID:oCrXkNbC0.net]
>>172
初めて挿入やった時に上から順に挿入してってぐっちゃぐちゃになったわw

175 名前:デフォルトの名無しさん mailto:sage [2019/05/05(日) 23:12:10.31 ID:BF8MV8/50.net]
ありがとう、皆さん。お言葉に甘えて
Sub 行の挿入()
dim k As Integer
dim i As Integer
dim j As Integer
dim h As Integer

Set obj基本データ = Thisworkbook.Worksheets("基本データ")

h = 7
Do while obj基本データ.Cells(4,h).Value〈〉""

For i = 1 To obj基本データ.Cells(5,
h).End(xlDown).Row

k = obj基本データ.Cells(4,h).Value

j = obj基本データ.Cells(i+4,h).Value

ThisWorkbook.Worksheets(k+2).Rows(j).Insert

next i

h = h + 1
Loop
End Sub

回すと、
ThisWorkbook.Worksheets(k+2).Rows(j).Insert
のところで、実行時エラー'1004'
となります。

176 名前:デフォルトの名無しさん mailto:sage [2019/05/05(日) 23:52:28.10 ID:pOOjaEue0.net]
>>175
構文はあってるけど、存在しないセルを参照している
多分jに0か、kに-2が入ってるとかそんな感じ



177 名前:デフォルトの名無しさん mailto:sage [2019/05/05(日) 23:53:17.22 ID:pOOjaEue0.net]
変数の中身を確認して
確認方法はウォッチ式、イミディエイトウィンドウなどいろいろあるけど

msgbox j
msgbox k
ThisWorkbook.Worksheets(k+2).Rows(j).Insert

でも良い

178 名前:デフォルトの名無しさん mailto:sage [2019/05/06(月) 00:20:05.87 ID:50ISOOVP0.net]
>>176
遅くにありがとうございました。

ご指摘のとおり、iに0が入るため、エラーになっていることがわかりました。

後は、空白セルを0と読み取らせない方法を調べてみます。

丸二日、エラーの理由がわからずに悩んでいました。

見ず知らずの方に助けてもらえて感謝です。ありがとうございました。

179 名前:デフォルトの名無しさん mailto:sage [2019/05/06(月) 00:33:06.01 ID:50ISOOVP0.net]
>>178
j
でした。訂正します。

180 名前:デフォルトの名無しさん mailto:sage [2019/05/06(月) 00:51:29.40 ID:50ISOOVP0.net]
>>176
IF j=0 then GoTo L1
を追加して、
エラーになるところを飛ばして解決しました。

ありがとうございました。

181 名前:デフォルトの名無しさん mailto:sage [2019/05/06(月) 10:29:14.43 ID:ZwYgATzZd.net]
>>178
初心者は、問題がどこにあるのかに勘所が無いからこういう悩んで時間を使う経験をたくさんすると良い。
慣れれば5秒で気付く。

あと、Do〜Loopはいらない気がする。
hの代わりにiを使ってどうにかできると思うね。

182 名前:デフォルトの名無しさん mailto:sage [2019/05/06(月) 10:30:20.40 ID:ZwYgATzZd.net]
>>178
間違えた。
hは列方向か。

183 名前:デフォルトの名無しさん mailto:sage [2019/05/10(金) 16:54:45.46 ID:SsAAf7AE0.net]
VBA勉強中の者です。

Setステートメントを勉強しているのですが、オブジェクト型についてお聞きしたいです。RangeオブジェクトとかWorksheetオブジェクトなど、いろんなサイトなど見ても使いどころがよくつかめてないです。

どんなときに使うのか、教えてもらえるとありがたいです。

184 名前:デフォルトの名無しさん mailto:sage [2019/05/10(金) 16:57:57.46 ID:/nmPTcfU0.net]
>>183
数値と文字列以外は全部オブジェクト

185 名前:デフォルトの名無しさん mailto:sage [2019/05/10(金) 17:04:22.66 ID:/nmPTcfU0.net]
どんなときに使うのか、は一言で言うのは難しいが、基本的には保守のため

・何の変数か分からない時に名前をつける
range("a1:b2")だと何の範囲かはワークシート見ないと分からない
set 転記元 = range("a1:b2")
とすることで、そのrangeが何か一発で分かるようになる

ちなみに「何をするか」ではなく「何が入ってるか」を基準に命名すると後で分かりやすい
「何をするか」はfunctionの名前がそうなっているはずだ

・ある変数が2回以上登場する場合、最初に変数に入れておけばそのコードを変更する時に一回で済む
まぁこれは説明せんでもええわな

・保守しないならめんどくさいだけじゃん
そう、合っている
ちゃんと保守できるように書いて置いた方が、長い目で見ると楽なんだ。プラマイプラス

186 名前:デフォルトの名無しさん mailto:sage [2019/05/10(金) 19:25:57.30 ID:ZL9lN1sfd.net]
>>184、185
レスありがとうございます。
185さん
感覚ですが、すごく単純な感じがします。そんな認識でよいです?

ただ184さんのいう
数値と文字列以外は全部オブジェクト
これがひっかかるんです。

range("a1:b2")がオブジェクトという認識でよい?
そのなかに文字があった場合は?
文字列じゃない?と思ってしまうが、それは違うんですよね。
仮に
range("b2").valueだった場合は値で、range("a1:b2")はオブジェクトという事?

はなしがまとまってなくて、すみません。



187 名前:デフォルトの名無しさん mailto:sage [2019/05/10(金) 19:27:02.31 ID:ZL9lN1sfd.net]
↑183が書き込みしました。

188 名前:デフォルトの名無しさん mailto:sage [2019/05/10(金) 19:40:34.80 ID:tGc5sWC60.net]
Excelのシート内部の表位置とかカラム位置とかデータ末尾とか特定するベストプラクティスってどんなんですか!

何十年前からある言語でこんだけ普及してるのにいまだに決まった答えがないとか

189 名前:デフォルトの名無しさん mailto:sage [2019/05/10(金) 19:44:21.41 ID:tfYAY6pzM.net]
>>188
あのね、A1から使うのがExcelの正しい使い方なの
枠やらタイトルやら付けるのはバカジャップの間違った使い方なの

190 名前:デフォルトの名無しさん mailto:sage [2019/05/10(金) 19:52:43.30 ID:tGc5sWC60.net]
一瞬で理解した

191 名前:デフォルトの名無しさん mailto:sage [2019/05/10(金) 20:14:31.04 ID:/nmPTcfU0.net]
>>186
range("a1:b2")はオブジェクト。この中にプロパティとしてvalueやwidth、heightなどがある
もちろんrange("a1:b2").valueは文字列。

range("a1")に1が入っていて
range("a1")+2が3になるのは、range("a1:b2").valueが自動的に呼び出されて
range("a1").value+2になっているため

MSDNじっくり読んだほうがいいかもな
https://docs.microsoft.com/ja-jp/office/vba/api/excel.range(object)

192 名前:デフォルトの名無しさん mailto:sage [2019/05/10(金) 20:16:01.36 ID:/nmPTcfU0.net]
>>188
最強はこのページの

<S6> 書式付きセルを除外する (UsedRange)
www.niji.or.jp/home/toru/notes/8.html

ケツから検索して見つかった奴が最後

193 名前:デフォルトの名無しさん mailto:sage [2019/05/10(金) 21:34:51.98 ID:ZL9lN1sfd.net]
>>191
レスありがとうございます
誘導もありがとう!
じっくり読んでみます。
わからない所があったらまた聞くかもです。
中途半端な理解は嫌だし。さっかりと理解したいし。

194 名前:デフォルトの名無しさん mailto:sage [2019/05/10(金) 22:33:38.03 ID:Mw5h8bh90.net]
プログラミングを理解するには、読むだけでなくとにかく実際に動かしてみることが大事

195 名前:デフォルトの名無しさん mailto:sage [2019/05/11(土) 03:15:11.68 ID:04x+b6lna.net]
さっかりなw

196 名前:デフォルトの名無しさん mailto:sage [2019/05/11(土) 08:20:45.16 ID:0TYDlcnk0.net]
>>194
そうですよね
やらないとわからないがほとんどです(T-T)

>>195
脳内変換ヨロシクです



197 名前:デフォルトの名無しさん mailto:sage [2019/05/11(土) 19:56:32.57 ID:C94O1bx/0.net]
ADO使うと突然落ちるようになった。
何が原因J?

198 名前:デフォルトの名無しさん mailto:sage [2019/05/11(土) 20:45:20.04 ID:Y1ZlGg0p0.net]
>>197
プロバイダはなに?

199 名前:デフォルトの名無しさん mailto:sage [2019/05/11(土) 21:32:42.45 ID:C94O1bx/0.net]
>>198
Microsoft.ACE.OLEDB.12.0
PCによっては普通に実行できるので、原因がわからん。

200 名前:デフォルトの名無しさん mailto:sage [2019/05/11(土) 21:36:03.53 ID:pbKNvvnGa.net]
質問です。
NumberFormatLocal = “yyyy””年””m””月””d””日””(aaa)”で書式の定義を変更しています。
NumberFormatLocal = ●“yyyy””年””m””月””d””日””(aaa)”

●の箇所に文字列を入れたいのですが”●”を入れるとエラーになります。解決方法はありますでしょうか?

201 名前:デフォルトの名無しさん mailto:sage [2019/05/11(土) 21:40:16.93 ID:C94O1bx/0.net]
>>200
わからんけど、自動記録でやったものをコピペするとか。

202 名前:デフォルトの名無しさん mailto:sage [2019/05/11(土) 21:46:39.70 ID:VQwnSTgG0.net]
マクロの記録取ってみたわ
ダブルコーテーションで括った中で、更にダブルコーテーションがいるっぽい
具体てt機にはこう

Selection.NumberFormatLocal = """あ""yyyy""年""m""月"""

203 名前:デフォルトの名無しさん mailto:sage [2019/05/11(土) 21:46:58.83 ID:pbKNvvnGa.net]
>>201
解決しました。ありがとうございました。

204 名前:デフォルトの名無しさん mailto:sage [2019/05/12(日) 02:13:17.21 ID:anQ1bE+S0.net]
もしかして、Access2016が入ってると、
Excel2013ではADO接続使えない?

Excel2013からAccess2016の参照で落ちるケースはググって見つけたけど、
ウチのはExcel2013からExcel2013で落ちる。

205 名前:デフォルトの名無しさん [2019/05/12(日) 02:35:46.96 ID:0u/cIV/f0.net]
>>190
データとしてExcelを使う場合と、ドキュメントとしてExcelを使う場合とで、考え方がかわる。

206 名前:デフォルトの名無しさん mailto:sage [2019/05/12(日) 08:45:07.80 ID:OK9Y1i2P0.net]
>>204
win下をdll検索して、複数見つかったらそれぞれ直接参照設定してみるとか
(単体で動いてるわけじゃない気もするから、期待薄かもしれんけど)



207 名前:デフォルトの名無しさん mailto:sage [2019/05/12(日) 12:05:15.73 ID:anQ1bE+S0.net]
>>206
それもダメだったから、諦めてExcel2019買ったわ。
それだと普通に動いたから、
やっぱりExcel2013とAccess2016の組み合わせがダメだったみたい。

ありがとう。

208 名前:デフォルトの名無しさん mailto:sage [2019/05/12(日) 16:17:36.32 ID:UM6bazI+0.net]
32ビット版だったとか?

209 名前:デフォルトの名無しさん mailto:sage [2019/05/12(日) 17:19:48.24 ID:anQ1bE+S0.net]
>>208
Excel2013 ・・・ ADO接続OK
   ↓
Excel2013 + Access2016 ・・・ ここで突然落ちるようになる
   ↓
Excel2019 + Access2016 ・・・ 直った!

全部32bit。
本当は64bitにしたかったけど、ListViewとか、
一部使えなくなる機能があるので諦めた。

210 名前:デフォルトの名無しさん mailto:sage [2019/05/12(日) 17:21:42.38 ID:anQ1bE+S0.net]
あ、Excel2013 + Access2016って、インストールの組み合わせ。
別に、Excel2013からAccess2016に接続しに行ったわけじゃない。
落ちたのは、Excel2013からExcel2013へのADO接続。

211 名前:デフォルトの名無しさん [2019/05/12(日) 17:23:44.21 ID:0u/cIV/f0.net]
なんの話をしているのか他人にはさっぱりわからないw

212 名前:デフォルトの名無しさん mailto:sage [2019/05/12(日) 18:10:56.69 ID:w16fcO4J0.net]
時刻がマイナスの場合

とは、if文でどうやってつくりますか?

213 名前:デフォルトの名無しさん mailto:sage [2019/05/12(日) 18:20:18.19 ID:O1RPDIWFM.net]
>>212
マイナスの時刻など存在しない
If 1 = 2

214 名前:デフォルトの名無しさん mailto:sage [2019/05/12(日) 18:23:52.94 ID:w16fcO4J0.net]
A−B=C

時刻の差のCがマイナス表示されるセルを

if文で
00:00:00
に直したいです

215 名前:デフォルトの名無しさん mailto:sage [2019/05/12(日) 18:30:53.16 ID:O1RPDIWFM.net]
>>214
=TEXT(MAX(0, C), "hh:mm:ss")
VBAは要らん

216 名前:デフォルトの名無しさん mailto:sage [2019/05/12(日) 18:33:52.80 ID:w16fcO4J0.net]
セルの設定ですね。
ありがとうございます。



217 名前:デフォルトの名無しさん [2019/05/12(日) 20:06:16.73 ID:0u/cIV/f0.net]
プログラミングの初歩は大事なんだと思ったよ。

ある値のときは00時00分00秒にするという分岐を思いつかないんだから。

218 名前:デフォルトの名無しさん mailto:sage [2019/05/12(日) 20:51:34.11 ID:JDMVXB4ua.net]
まあMIN/MAXを使って値をキャップするのは正統なプログラミングでは非常によく使われる方法だけど、
事務屋さんには意外と思いつかないかもね

219 名前:デフォルトの名無しさん mailto:sage [2019/05/12(日) 21:54:23.80 ID:UM6bazI+0.net]
普通に時刻どうしで比較できるから、3分前とかそういうことかと思ってた

220 名前:デフォルトの名無しさん [2019/05/12(日) 22:49:25.28 ID:0u/cIV/f0.net]
>>210
Office製品は基本的にバージョン違いを混在させられるようにはできていない。

221 名前:デフォルトの名無しさん mailto:sage [2019/05/13(月) 07:47:02.77 ID:J0xiSM4lM.net]
>>220
そんなことはなくて条件満たせば使えるよ
https://www.microsoft.com/ja-jp/office/homeuse/attention4.aspx

222 名前:デフォルトの名無しさん mailto:sage [2019/05/13(月) 09:04:58.38 ID:bJahx30bM.net]
>>219
時間と時刻

223 名前:デフォルトの名無しさん mailto:sage [2019/05/13(月) 09:19:29.85 ID:OGTR1ISy0.net]
その前にいきなり時刻とか言い出した辺りでダメダメ。
人間が時刻と思ってるだけの可能性がある。

セルの書式や変数の型を元に説明しないのは、人間の目線で時刻と言ってる証拠。

224 名前:デフォルトの名無しさん mailto:sage [2019/05/13(月) 13:56:52.37 ID:p6Zrf1zY0.net]
シャープで囲んでる人はちょっと

225 名前:デフォルトの名無しさん mailto:sage [2019/05/13(月) 14:34:08.69 ID:/2MppI/1M.net]
VBAでは時刻と時間を Timeでずっとやり繰りしてたのに、c#で TimeSpan発見したときは叫んだわ

226 名前:デフォルトの名無しさん mailto:sage [2019/05/13(月) 16:36:40.35 ID:N0Eopnbu0.net]
え?エクセルをADOでデータベースみたいに扱うこともできるの?



227 名前:デフォルトの名無しさん mailto:sage [2019/05/13(月) 17:03:08.67 ID:P7TvqqIDM.net]
>>226
ちゃんと形式を整えておけば単純なSELECTなら使える
WHEREが機能するだけでOKってことならまあまあかな
JOINとかは当てにならないような気がする
DELETE, INSERT, UPDATE はもっと当てにならない

228 名前:デフォルトの名無しさん mailto:sage [2019/05/13(月) 19:21:33.24 ID:t89inGVt0.net]
あてにならないってなんやねん

229 名前:デフォルトの名無しさん [2019/05/13(月) 20:44:43.21 ID:/95lNMvTM.net]
>>228
他人だけど、ExcelのSQL操作はおまけ機能だから、標準SQLに対応してないから、やってみないとわからない。

230 名前:デフォルトの名無しさん mailto:sage [2019/05/13(月) 21:00:39.75 ID:N0Eopnbu0.net]
まぁできちゃったらアクセスの立場ないわな

231 名前:デフォルトの名無しさん mailto:sage [2019/05/13(月) 21:02:14.05 ID:icbU5YOt0.net]
SQL自体もう色々派閥が分かれすぎて

232 名前:デフォルトの名無しさん mailto:sage [2019/05/13(月) 21:06:25.95 ID:adbFFiEz0.net]
>>229
馬鹿は死ねや
Accessのエンジンと同じだろ

233 名前:デフォルトの名無しさん [2019/05/13(月) 21:10:27.82 ID:/95lNMvTM.net]
>>232
バージョンを気にしてくださいw

234 名前:デフォルトの名無しさん mailto:sage [2019/05/13(月) 22:16:41.75 ID:ErXZ/V3c0.net]
>>226
出来るよ。
普通はやらないだろうけど、会社のPCにAccessが入ってないとか、
Accessは入ってるけど、事務のおばちゃんがExcelにしがみついて、
意地でも離さないとか、そういう状況で使える。

>>227
JOINは普通に使える。

235 名前:デフォルトの名無しさん mailto:sage [2019/05/13(月) 22:42:40.28 ID:ATfYCMP60.net]
>>234
そうか、JOINも普通にできるのか...

「Excelもデータベースとして有効に使えるよね」なんて方向に行って欲しくない、という願望が
俺の心の中にバイアスを生んだようだ

236 名前:デフォルトの名無しさん mailto:sage [2019/05/13(月) 23:05:59.93 ID:RqskJpspx.net]
というかPowerQueryやDAXでデータベース的な使い方が出来てしまうからな今のExcelは



237 名前:デフォルトの名無しさん mailto:sage [2019/05/13(月) 23:39:26.70 ID:N0Eopnbu0.net]
エクセルでできるってすごい!
そこで疑問に思ったんですが以下のVBA書いてみましたが

Dim adoCn As Object
Dim adoRs As Object
Dim strSQL As String
Dim DBpath As String

DBpath = ThisWorkbook.Path

Set adoCn = CreateObject("ADODB.Connection")
Set adoRs = CreateObject("ADODB.Recordset")
adoCn.Open "Provider=Microsoft.ACE.OLEDB.12.0;" & "Data Source=" & DBpath & "\SampleData.xlsx;"←@

strSQL = "select A,B,C from シート名 order by A desc" ←A
adoRs.Open strSQL, adoCn

*何か処理

adoRs.Close
adoCn.Close 'コネクションのクローズ
Set adoRs = Nothing 'オブジェクトの破棄
Set adoCn = Nothing

@について
プロバイダーとファイル指定の記述の仕方はあってますか?
Aについて
列の指定とfromの方法は?

教えてください<(_ _)>

238 名前:デフォルトの名無しさん [2019/05/13(月) 23:43:46.08 ID:4/CDP/BQ0.net]
秀和システムでいいから、古本を買って読めよw

ちゃんとサンプルが書いてある。アマゾンの古本は激安だぞ。

239 名前:デフォルトの名無しさん mailto:sage [2019/05/13(月) 23:45:48.17 ID:N0Eopnbu0.net]
エクセルをデータベースとして使う記述があるのがどの本なのかさっぱり・・・
できれば本教えてもらえませんか?

240 名前:デフォルトの名無しさん mailto:sage [2019/05/13(月) 23:47:08.95 ID:adbFFiEz0.net]
>>233
馬鹿は死ね

241 名前:デフォルトの名無しさん [2019/05/13(月) 23:49:20.76 ID:4/CDP/BQ0.net]
>>239
Google検索でもサンプルは山のようにあるぞ。

242 名前:デフォルトの名無しさん mailto:sage [2019/05/14(火) 00:09:21.56 ID:XEzOoRRL0.net]
ちょっとググって見ます

243 名前:デフォルトの名無しさん mailto:sage [2019/05/14(火) 00:15:14.20 ID:a29jNOd40.net]
>>237
何通りかあったと思うけど、
その書き方だと[Sheet1$]かな。

プロバイダーも、adoCn.Providerにも、adoCn.Openにも書ける。
ブック名をFromの後に書く方法もある。

組み合わせは忘れたけど、どこかで指定していれば、
別の部分では省略できる感じ。

244 名前:デフォルトの名無しさん mailto:sage [2019/05/14(火) 05:07:41.34 ID:XEzOoRRL0.net]
>>243
なるほど、勉強になります

245 名前:デフォルトの名無しさん mailto:sage [2019/05/14(火) 19:07:26.92 ID:wEGsmpoqp.net]
https://dotup.org/uploda/dotup.org1847293.xlsx.html
東京・大阪・北海道の各出発時間・到着時間を黄色い部分に「sendkeysで」、「それぞれ東京・大阪・北海道の順序を守って」入力したいです
実際にsendkeysでキーを送るのはブラウザ上のフォームであり、東京の時刻入力→tabとenterをsendkeyしつつ次のページに移動→大阪を入力、という風に処理するため、順序等が変更できません
また入力するのが東京・大阪・北海道だけでないかもしれないので、記載がある行すべてというイメージでお願いします

excelスレでも質問してみてますが、vba専門スレがあることに気付かされたのでこちらでお世話になります

246 名前:デフォルトの名無しさん mailto:sage [2019/05/14(火) 20:14:46.00 ID:Bsz/IupB0.net]
だから、Sendkeysはやめろって。

これはお手軽にその場だけデータを取りたい時なんかに使うけど、制御出来ないから普通は使うべきじゃない。



247 名前:デフォルトの名無しさん mailto:sage [2019/05/14(火) 20:18:43.38 ID:wEGsmpoqp.net]
もちろんそうなんですが自分には IE操作は敷居が高くて、愚直も愚直にsendkeysしか手段が思いつかないもので・・何か代替案ございますか?

248 名前:デフォルトの名無しさん mailto:sage [2019/05/14(火) 20:22:02.95 ID:9TMbmfYm0.net]
どう考えてもIE操作の方が敷居が低いんだが

249 名前:デフォルトの名無しさん mailto:sage [2019/05/14(火) 20:23:00.65 ID:9TMbmfYm0.net]
inputに文字列入れるだけだろ?
ソース見てidだかclassだか取得してポイって入れるだけじゃん

250 名前:デフォルトの名無しさん mailto:sage [2019/05/14(火) 20:25:50.88 ID:wEGsmpoqp.net]
それがよーわからんのです・・
とりあえずググってすぐ見つかるサイトで特に初心者にわかりやすい解説してるサイトでも教えていただけませんか?

251 名前:デフォルトの名無しさん mailto:sage [2019/05/14(火) 21:33:16.75 ID:wEGsmpoqp.net]
IE操作で頑張ってみてるんですが、リンクオープンして開いた別窓を操作するにはまたhtmldocにobjIE.documentを代入して・・ってしないといけないんですか?

252 名前:デフォルトの名無しさん mailto:sage [2019/05/14(火) 21:59:36.21 ID:IyB4HHSk0.net]
>>251
別窓にしちゃう(なっちゃう)とそのウィンドウを探して、html取ってくることが必要になるので、できるなら避ける。

IE VBA
でググれば、参考サイト出てくる。あとは応用しだい
IEでは F12で開くやつも有用

がんばれ

253 名前:デフォルトの名無しさん mailto:sage [2019/05/14(火) 22:06:13.16 ID:wEGsmpoqp.net]
>>252
社内システムなので必ず別窓になっちゃう仕様です
htmlの取り方教えてもらえませんか?

254 名前:デフォルトの名無しさん mailto:sage [2019/05/14(火) 22:31:09.98 ID:a29jNOd40.net]
>社内システムなので

多分、このスレ見てる全員ズコーだわ、そのオチ。
システム部門の人に聞いちゃダメなんかい。

255 名前:デフォルトの名無しさん mailto:sage [2019/05/14(火) 22:36:33.89 ID:s0Vi/y5R0.net]
CreateObject("Shell.Application").Windows() から探す

256 名前:デフォルトの名無しさん mailto:sage [2019/05/16(木) 11:39:56.68 ID:a1IyAHl+r.net]
excelマクロでのバージョン管理てどうすればいいん
言われるがままに集計マクロ作ったら担当者毎に持ってるマクロのバージョン違ってあの機能が無いとか特殊な状況でエラー出る→それ先月直しましたよ
が頻発してる



257 名前:デフォルトの名無しさん mailto:sage [2019/05/16(木) 12:20:32.52 ID:5BGNguvP0.net]
>>256
サーバー上にマクロ専用のエクセルファイルを置いて、
個々に配っているファイルからはそのマクロを参照させる

258 名前:デフォルトの名無しさん mailto:sage [2019/05/16(木) 12:51:40.47 ID:YRbGgWK/M.net]
>>257
基本それだが、ずっと掴んでるやつがいるとバグ修正や機能追加のときに困る






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

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

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