!extend:checked:vvvvv:1000:512
スレ立ての際は一行目に
!extend:checked:vvvvv:1000:512
と入れてスレ立てして下さい
ExcelのVBAに関する質問スレです
コード書き込みや作成依頼もOK
※関連スレ
VBAなんでも質問スレ Part2
http://mevius.2ch.net/test/read.cgi/tech/1432173164/
Access VBA 質問スレ Part1
http://mevius.2ch.net/test/read.cgi/tech/1328536426/
Excel総合相談所 126
https://mevius.2ch.net/test/read.cgi/bsoft/1496487719/
※前スレ
Excel VBA 質問スレ Part49©2ch.net
http://mevius.2ch.net/test/read.cgi/tech/1498410914/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
Excel VBA 質問スレ Part50 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん 転載ダメ©2ch.net (ワッチョイ 7e6d-ffY6)
2017/08/27(日) 12:40:17.57ID:LjjEWylk0148デフォルトの名無しさん (ワッチョイ 5a11-oWo5)
2017/09/13(水) 15:46:41.67ID:n1InxPaY0 おまえら>>128にパフォーマンステストの結果が載ってるのになぜ見ない
[lookupテーブル件数:200k, lookup回数:25kの結果]
- VLOOKUP: 11.97sec
- VBA Dictionary: 0.45sec (※Dictionaryの生成時間は含まない)
- DOUBLE TRUE VLOOKUP: 0.05sec
VLOOKUPで最後のオプションをFALSEにするとリニアサーチだから遅い
TRUEにするとバイナリサーチだから速い O(N)とO(log N)の違い
ただ見つからない場合に不都合が出るからそれを解決するためのDOUBLE TRUE VLOOKUP
同じリニアサーチでもVLOOKUPが単純な二重ループより数倍速いのはC/C++使って最適化してるから
[lookupテーブル件数:200k, lookup回数:25kの結果]
- VLOOKUP: 11.97sec
- VBA Dictionary: 0.45sec (※Dictionaryの生成時間は含まない)
- DOUBLE TRUE VLOOKUP: 0.05sec
VLOOKUPで最後のオプションをFALSEにするとリニアサーチだから遅い
TRUEにするとバイナリサーチだから速い O(N)とO(log N)の違い
ただ見つからない場合に不都合が出るからそれを解決するためのDOUBLE TRUE VLOOKUP
同じリニアサーチでもVLOOKUPが単純な二重ループより数倍速いのはC/C++使って最適化してるから
149デフォルトの名無しさん (ササクッテロレ Sp3b-kWVg)
2017/09/13(水) 15:47:56.64ID:W36Ef0cBp150デフォルトの名無しさん (ササクッテロレ Sp3b-kWVg)
2017/09/13(水) 15:50:55.04ID:W36Ef0cBp >>149
ごめん、いろいろとおかしかった
Range("B1:B30000")="vlookup(Sheet1!A1,Sheet2!A:A,1,false"
Range("B1:B30000").value=Range("B1:B30000").value
ごめん、いろいろとおかしかった
Range("B1:B30000")="vlookup(Sheet1!A1,Sheet2!A:A,1,false"
Range("B1:B30000").value=Range("B1:B30000").value
151デフォルトの名無しさん (ササクッテロレ Sp3b-kWVg)
2017/09/13(水) 16:03:25.39ID:W36Ef0cBp ほんとグダグダで申し訳ない
しばらくROMります…
Range("B1:B30000")="=vlookup(Sheet1!A1,Sheet2!A:A,1,false"
Range("B1:B30000").value=Range("B1:B30000").value
しばらくROMります…
Range("B1:B30000")="=vlookup(Sheet1!A1,Sheet2!A:A,1,false"
Range("B1:B30000").value=Range("B1:B30000").value
152デフォルトの名無しさん (ワッチョイ db8f-m+++)
2017/09/13(水) 23:54:00.93ID:qFUPeADD0153デフォルトの名無しさん (ワッチョイ 81ea-SGtB)
2017/09/14(木) 00:05:19.65ID:QvPDzzeD0 >>124で処理時間高速化の質問させてもらった者です
>>131
ありがとうございます!
このスレの内容にあるようにセルを配列に入れてから、if文は配列同士で比較して、結果も配列で取得するように修正しました
配列の値を、一度にセル範囲に出力するコードに修正したら8分前後かかっていた処理が、1分〜2分前後になって、処理時間がめちゃめちゃ早くなって快適になりました
みなさんが言われてるように、VBAでワークシート関数を使用した場合の処理時間は、
おなじみオフィス田中さんのページに、配列をセル範囲に出力するのと同じぐらいの処理時間が高速だと書いてありますね
3万行と比較する列データが、複数シートで複数列だったので、次回同じような処理を作成する時は
VLOOKUP用の一時シートを追加して、3万行の列を一番左の列の検索キーにして、比較列はVLOOKUPで取得する実装をしてみます
>>131
ありがとうございます!
このスレの内容にあるようにセルを配列に入れてから、if文は配列同士で比較して、結果も配列で取得するように修正しました
配列の値を、一度にセル範囲に出力するコードに修正したら8分前後かかっていた処理が、1分〜2分前後になって、処理時間がめちゃめちゃ早くなって快適になりました
みなさんが言われてるように、VBAでワークシート関数を使用した場合の処理時間は、
おなじみオフィス田中さんのページに、配列をセル範囲に出力するのと同じぐらいの処理時間が高速だと書いてありますね
3万行と比較する列データが、複数シートで複数列だったので、次回同じような処理を作成する時は
VLOOKUP用の一時シートを追加して、3万行の列を一番左の列の検索キーにして、比較列はVLOOKUPで取得する実装をしてみます
154デフォルトの名無しさん (スププ Sdb3-YAaM)
2017/09/14(木) 08:15:22.18ID:l8z8iklHd >>153
分単位はかかり過ぎだと思うなぁ。
データや環境の違いがあるから、純粋に比較はできんだろうが、124の内容を素直に読んでコード書いて動かして見たが、100msecかからんかったよ。
ちな、
3万行のデータを配列1に丸ごと代入
5千行のデータを配列2に丸ごと代入
配列2から辞書を作成
配列1を先頭から順に見て、辞書に存在しない値を消す
3万行データの隣に配列1を丸ごと貼る
分単位はかかり過ぎだと思うなぁ。
データや環境の違いがあるから、純粋に比較はできんだろうが、124の内容を素直に読んでコード書いて動かして見たが、100msecかからんかったよ。
ちな、
3万行のデータを配列1に丸ごと代入
5千行のデータを配列2に丸ごと代入
配列2から辞書を作成
配列1を先頭から順に見て、辞書に存在しない値を消す
3万行データの隣に配列1を丸ごと貼る
155デフォルトの名無しさん (ワッチョイ 7973-sgiV)
2017/09/14(木) 08:29:32.22ID:+i9FPPOB0 配列にして一括で読み書きする
これが全てだよ
これが全てだよ
156デフォルトの名無しさん (スップ Sdf3-GtKF)
2017/09/14(木) 10:18:54.39ID:dILqaQ/Ld VBAにも新規参入者がいて20年くらい前の話題が新たになされるのにちょっと感動した
157デフォルトの名無しさん (ワッチョイ c91e-Gbox)
2017/09/14(木) 11:15:17.22ID:XfGri2Pk0 Windows10のアップデートでIEオブジェクトの挙動がまた変わったらしい?
データ収集とかしてる人はアップデートしない方がいいかも
データ収集とかしてる人はアップデートしない方がいいかも
158デフォルトの名無しさん (ワッチョイ 016f-SGtB)
2017/09/14(木) 12:34:44.93ID:MnqZaJ520 配列 オブ カリビアン
159デフォルトの名無しさん (スップ Sdf3-GtKF)
2017/09/14(木) 12:36:58.88ID:dILqaQ/Ld この期にIEオブジェクトをわざわさ生成するやり方はやめたらいいと思う
160デフォルトの名無しさん (ワッチョイ 5b6d-M8tZ)
2017/09/14(木) 12:39:57.29ID:IwoZ7QGd0 vbaでスクレイピングはねぇ
161デフォルトの名無しさん (アウアウカー Sa1d-+tv6)
2017/09/14(木) 12:42:41.16ID:YtbuHggLa162デフォルトの名無しさん (ワッチョイ db23-p+ov)
2017/09/14(木) 14:27:44.29ID:gZf88W9A0 あるシートに所属するプロシージャから
自分の所属するシートを参照するにはどうしたらいいのでしょうか?
プロシージャを他のシートにコピペしたら
コードを書き換えなくてもコピペ先のシートを参照するようなコードを
書きたいのですが
自分の所属するシートを参照するにはどうしたらいいのでしょうか?
プロシージャを他のシートにコピペしたら
コードを書き換えなくてもコピペ先のシートを参照するようなコードを
書きたいのですが
163デフォルトの名無しさん (ワッチョイ 993d-XDX8)
2017/09/14(木) 14:33:45.54ID:EP6SpHBt0164デフォルトの名無しさん (ワッチョイ db23-p+ov)
2017/09/14(木) 14:54:53.92ID:gZf88W9A0 >>163
いや、むしろシートを飛び越えないでほしいんですが
シートで完結した処理にしたいのでシート名や番号による
シートの指定を排除して、所属するシートのセルを参照したいのですが
検索して調べるとセルを参照する方法としては
シート名を決め打ちする方法ばかりが出てくるので困っているのです
いや、むしろシートを飛び越えないでほしいんですが
シートで完結した処理にしたいのでシート名や番号による
シートの指定を排除して、所属するシートのセルを参照したいのですが
検索して調べるとセルを参照する方法としては
シート名を決め打ちする方法ばかりが出てくるので困っているのです
165デフォルトの名無しさん (バットンキン MMd3-u5aB)
2017/09/14(木) 15:38:59.34ID:lm5VBVU0M Active Sheet とSheet名以外でSheet 特定できるんだっけ?
166デフォルトの名無しさん (ワッチョイ 7973-sgiV)
2017/09/14(木) 15:49:13.64ID:+i9FPPOB0 application.callerでチェックボックスの動きの判定をするようにしたらメチャ重いんだが、これなんとかならない?
167デフォルトの名無しさん (ワッチョイ 5b6d-TkIQ)
2017/09/14(木) 15:52:46.83ID:IwoZ7QGd0168デフォルトの名無しさん (ワッチョイ 5b6d-TkIQ)
2017/09/14(木) 15:53:31.32ID:IwoZ7QGd0 セルはもちろんこんな感じね
Sub foo()
Debug.Print Me.Cells(1, 1)
End Sub
Sub foo()
Debug.Print Me.Cells(1, 1)
End Sub
169デフォルトの名無しさん (ワッチョイ 5b6d-TkIQ)
2017/09/14(木) 15:54:13.48ID:IwoZ7QGd0170デフォルトの名無しさん (ワッチョイ 7973-sgiV)
2017/09/14(木) 15:57:20.47ID:+i9FPPOB0171デフォルトの名無しさん (ワッチョイ 993d-XDX8)
2017/09/14(木) 15:58:45.31ID:EP6SpHBt0 >>164
シートモジュールに直書きする場合はSheetsの部分を省略してCellsやRangeから書ける。
シートを指定しない場合の振る舞いが、
標準モジュールではActiveSheet(見えているシート)だったものが、
シートモジュールではそのシートに限定されるという変化をするので併用する場合は注意が必要。
シートモジュールに直書きする場合はSheetsの部分を省略してCellsやRangeから書ける。
シートを指定しない場合の振る舞いが、
標準モジュールではActiveSheet(見えているシート)だったものが、
シートモジュールではそのシートに限定されるという変化をするので併用する場合は注意が必要。
172デフォルトの名無しさん (ワッチョイ 5b6d-TkIQ)
2017/09/14(木) 16:00:47.13ID:IwoZ7QGd0 標準モジュールに書いて、対象シートはsetした方がいいと思うけどなぁ
173デフォルトの名無しさん (ワッチョイ db23-p+ov)
2017/09/14(木) 16:02:42.23ID:gZf88W9A0174デフォルトの名無しさん (アウアウカー Sa1d-+tv6)
2017/09/14(木) 18:24:24.22ID:EcWTQGUxa175デフォルトの名無しさん (ワッチョイ 5b6d-UUct)
2017/09/14(木) 18:59:59.93ID:IwoZ7QGd0 >>174
ではレベルの高い方法をどうぞ
ではレベルの高い方法をどうぞ
176デフォルトの名無しさん (アウアウカー Sa1d-+tv6)
2017/09/14(木) 19:19:27.73ID:VHoNboqWa >>175
速度はコードによるから〜でOKなどというものじゃない。
別に、意識してコード書かなくても下記の後半部分にあるようなコードになる。
その上で速度を上げようと意識すれば一番最後のようになる。
http://excel-ubara.com/excelvba4/EXCEL228.html
速度はコードによるから〜でOKなどというものじゃない。
別に、意識してコード書かなくても下記の後半部分にあるようなコードになる。
その上で速度を上げようと意識すれば一番最後のようになる。
http://excel-ubara.com/excelvba4/EXCEL228.html
177デフォルトの名無しさん (アウアウカー Sa1d-+tv6)
2017/09/14(木) 19:23:47.78ID:NoiILVtJa それで駄目ならマルチプロセスにする。
適用出来ないことも多いけどな。
objEx1=CreateObject("Excel.Application")
を複数作ってそれぞれに独立した計算をさせる。
適用出来ないことも多いけどな。
objEx1=CreateObject("Excel.Application")
を複数作ってそれぞれに独立した計算をさせる。
178デフォルトの名無しさん (ワッチョイ 5b6d-UUct)
2017/09/14(木) 19:34:05.01ID:IwoZ7QGd0179デフォルトの名無しさん (ワッチョイ 993d-XDX8)
2017/09/14(木) 20:04:51.07ID:EP6SpHBt0 シート作ったりセルに書き込んだりというエクセル側の操作をすると、
その度にイベントが走ることになるから、これを如何に抑えるかってのが重要なんだけど、
最初から全部覚えようとするとパンクする。
その度にイベントが走ることになるから、これを如何に抑えるかってのが重要なんだけど、
最初から全部覚えようとするとパンクする。
180デフォルトの名無しさん (ワッチョイ 8123-sgiV)
2017/09/14(木) 20:30:17.25ID:8w8A3LKI0 どんだけ頑張ってコード書いても、大量の演算は結局ピボットの方が高速なんだよな
181デフォルトの名無しさん (オイコラミネオ MM6b-mPfK)
2017/09/14(木) 22:08:17.65ID:/NzRhjzgM For i = Lbound(X) to Ubound(X)
a = MATCH関数でXを検証
if XとMATCH関数が一致 Then
For j = Lbound(Z,2) to Ubound(Z,2)
Z(k,j) = cells(a,j-1).value
k = k + 1
next j
end if
Debug.print i
Next i
Xは要素が3万ほど
シートの列数も3万ほどでXと同じ値を格納
シートの列数は50程度
これでDebug.printの表示感覚が1秒ごとくらいなんだけど遅いですか?
30000 * 50 = 150000ループ
実に8時間ほどで納得行かない遅さなんです
a = MATCH関数でXを検証
if XとMATCH関数が一致 Then
For j = Lbound(Z,2) to Ubound(Z,2)
Z(k,j) = cells(a,j-1).value
k = k + 1
next j
end if
Debug.print i
Next i
Xは要素が3万ほど
シートの列数も3万ほどでXと同じ値を格納
シートの列数は50程度
これでDebug.printの表示感覚が1秒ごとくらいなんだけど遅いですか?
30000 * 50 = 150000ループ
実に8時間ほどで納得行かない遅さなんです
182デフォルトの名無しさん (ワッチョイ 5b6d-laG6)
2017/09/14(木) 22:14:39.02ID:IwoZ7QGd0183デフォルトの名無しさん (ワッチョイ 993d-XDX8)
2017/09/14(木) 22:16:42.03ID:EP6SpHBt0184デフォルトの名無しさん (ワッチョイ b111-7vJj)
2017/09/14(木) 22:18:51.12ID:CAJlFz9z0185デフォルトの名無しさん (オイコラミネオ MM6b-mPfK)
2017/09/14(木) 22:22:13.96ID:/NzRhjzgM186デフォルトの名無しさん (ワッチョイ 993d-XDX8)
2017/09/14(木) 22:33:58.37ID:EP6SpHBt0 もしかして学校課題か何かか。三万行って。
187デフォルトの名無しさん (ワッチョイ 1311-T94+)
2017/09/14(木) 22:37:11.21ID:XVFgKdZv0 MATCHもmatch_typeに1か-1を指定した時はバイナリサーチだから遅くないよ
0を指定してるとリニアサーチだから件数に比例して遅くなる
0を指定してるとリニアサーチだから件数に比例して遅くなる
188デフォルトの名無しさん (ワッチョイ 118f-YAaM)
2017/09/14(木) 23:03:43.05ID:XSiUnmrc0 学校の課題なら手伝わんぞ、それはカンニングだw
189デフォルトの名無しさん (オイコラミネオ MM6b-mPfK)
2017/09/14(木) 23:08:26.96ID:6XISNqi7M190デフォルトの名無しさん (ワッチョイ 5b6d-A1Wv)
2017/09/14(木) 23:20:59.58ID:IwoZ7QGd0191デフォルトの名無しさん (ワッチョイ 118f-YAaM)
2017/09/14(木) 23:22:39.03ID:XSiUnmrc0 マ?
クベ??
クベ??
192デフォルトの名無しさん (ワッチョイ 993d-XDX8)
2017/09/14(木) 23:37:20.66ID:EP6SpHBt0193デフォルトの名無しさん (ワッチョイ 93aa-o7xi)
2017/09/15(金) 00:05:39.06ID:N1D7768S0 緑郎?
194デフォルトの名無しさん (ワッチョイ 13b3-e6pT)
2017/09/15(金) 05:58:01.90ID:mR9ZEtfo0 駆け出しママ?
195デフォルトの名無しさん (アークセー Sx4d-+IhZ)
2017/09/15(金) 12:58:58.26ID:DPkC9aElx >>172
オブジェクト変数多用は速度低下の一因になるぞ
オブジェクト変数多用は速度低下の一因になるぞ
196デフォルトの名無しさん (ワッチョイ 016f-SGtB)
2017/09/15(金) 13:29:55.54ID:+lt7NDiE0 駆け出しのマトリ?
197デフォルトの名無しさん (スプッッ Sdf3-6PtN)
2017/09/15(金) 17:41:48.27ID:YuOtTZO+d 表示シートのセルA1に『SD11』と入力してからコマンドボタン1を押したらマスターシートのA列をFINDで検索かけて下に一行ずつ表示シートの項目別にそれぞれ転記するにはどうすればいいですか?
検索まで出きるんですが、転記とループのやり方が分かりません。
https://i.imgur.com/Bd3WIPk.jpg
https://i.imgur.com/3IPhNPk.jpg
検索まで出きるんですが、転記とループのやり方が分かりません。
https://i.imgur.com/Bd3WIPk.jpg
https://i.imgur.com/3IPhNPk.jpg
198デフォルトの名無しさん (ワッチョイ 993d-XDX8)
2017/09/15(金) 19:01:40.44ID:HxJpFmSs0 >>197
たぶんこれ、マスターシート?の一行目が項目になっている事から、
編集→テーブルでテーブル化してフィルタで絞ってコピペした方が早いんじゃないの。
種類の所だけ
Sub foo()
For Each x In Range("A1:A12")
if Len(x.Value) Then y = x.Value Else x.Value = y
Next
End Sub
みたいな形で空白を埋めるようにして。
たぶんこれ、マスターシート?の一行目が項目になっている事から、
編集→テーブルでテーブル化してフィルタで絞ってコピペした方が早いんじゃないの。
種類の所だけ
Sub foo()
For Each x In Range("A1:A12")
if Len(x.Value) Then y = x.Value Else x.Value = y
Next
End Sub
みたいな形で空白を埋めるようにして。
199デフォルトの名無しさん (ワッチョイ c1f8-7vJj)
2017/09/16(土) 07:57:41.80ID:CZKDCudP0 どっちがマスターシートかすらわからないのは俺だけなのか?
200デフォルトの名無しさん (ワッチョイ 016f-SGtB)
2017/09/16(土) 08:55:03.94ID:8PfQF6Zm0 動物記を書いた方
201デフォルトの名無しさん (ワッチョイ 5b6d-laG6)
2017/09/16(土) 08:57:29.36ID:0Tj0yPF60 それはファーブル
202デフォルトの名無しさん (ワッチョイ 9306-XDX8)
2017/09/16(土) 09:10:57.56ID:ZdfhdKJM0 シートンさん、涙
203デフォルトの名無しさん (ワッチョイ 9311-BsvU)
2017/09/16(土) 11:39:45.69ID:NmFgsGO20204デフォルトの名無しさん (ササクッテロレ Sp4d-dVTt)
2017/09/16(土) 17:35:52.97ID:ZtR64OGap excel2010使ってます。
apiを使ってアプリケーション外の任意の座標のピクセル情報を監視していますが、視覚的に監視している場所がわからないので、当該場所にbitmapを最前面に描画したいのですが、良い方法はないでしょうか?
あるいは、マウスのカーソルをその位置に描画する。とかも考えています。
apiを使ってアプリケーション外の任意の座標のピクセル情報を監視していますが、視覚的に監視している場所がわからないので、当該場所にbitmapを最前面に描画したいのですが、良い方法はないでしょうか?
あるいは、マウスのカーソルをその位置に描画する。とかも考えています。
205デフォルトの名無しさん (オッペケ Sr4d-Ec1/)
2017/09/16(土) 18:35:05.61ID:uv+MHauzr206デフォルトの名無しさん (ワッチョイ 1311-T94+)
2017/09/16(土) 19:17:26.63ID:gf/ZkNkm0207デフォルトの名無しさん (アウアウカー Sa1d-+tv6)
2017/09/16(土) 21:10:59.05ID:XK5pYCg9a >>206
昔、そういうプログラム書いてたな。
CreateCompatibleDCとか。
GDI+はステータスバーの数字を取得する為に使ったことがある。
よくあるウインドウハンドルから取得する方法やUIAutomation使う方法で取得出来なかったんで直接Bitbltかなんかで描画してるとしか思えなかった時に。
昔、そういうプログラム書いてたな。
CreateCompatibleDCとか。
GDI+はステータスバーの数字を取得する為に使ったことがある。
よくあるウインドウハンドルから取得する方法やUIAutomation使う方法で取得出来なかったんで直接Bitbltかなんかで描画してるとしか思えなかった時に。
208デフォルトの名無しさん (ワッチョイ 136c-XDX8)
2017/09/17(日) 15:05:48.02ID:QbcXsmvT0 vbaでpdfをこのようにバイナリ変換?して仕事で使うサイトにpostしたいのですがどうすれば変換できますか?
https://imgur.com/iztKsA6.jpg (普通のブラウザで送信した際の通信データを出力したもの)
ググった結果出てきたバイナリ変換?は2種類試しましたが↓変換はされるのですが形式が違うのか上手くいきませんでした(文字化けの感じも違いました)
strfilenameにはpdfのフルパスが入ります
Function GetFile2(strFileName As String) As String
Dim strFile As String
Dim nFile
' Grap the file
nFile = FreeFile
' Open strFileName For Binary As #nFile
Open strFileName For Binary As #nFile
strFile = String(LOF(nFile), " ")
Get #nFile, , strFile
Close #nFile
GetFile = strFile
End Function
Function GetFile(strFileName As String) As String
Dim FileContents() As Byte, FileNumber As Integer
ReDim FileContents(FileLen(strFileName) - 1)
FileNumber = FreeFile
Open strFileName For Binary As FileNumber
Get FileNumber, , FileContents
Close FileNumber
GetFile = StrConv(FileContents, vbUnicode)
End Function
https://imgur.com/iztKsA6.jpg (普通のブラウザで送信した際の通信データを出力したもの)
ググった結果出てきたバイナリ変換?は2種類試しましたが↓変換はされるのですが形式が違うのか上手くいきませんでした(文字化けの感じも違いました)
strfilenameにはpdfのフルパスが入ります
Function GetFile2(strFileName As String) As String
Dim strFile As String
Dim nFile
' Grap the file
nFile = FreeFile
' Open strFileName For Binary As #nFile
Open strFileName For Binary As #nFile
strFile = String(LOF(nFile), " ")
Get #nFile, , strFile
Close #nFile
GetFile = strFile
End Function
Function GetFile(strFileName As String) As String
Dim FileContents() As Byte, FileNumber As Integer
ReDim FileContents(FileLen(strFileName) - 1)
FileNumber = FreeFile
Open strFileName For Binary As FileNumber
Get FileNumber, , FileContents
Close FileNumber
GetFile = StrConv(FileContents, vbUnicode)
End Function
209デフォルトの名無しさん (ワッチョイ 1311-T94+)
2017/09/17(日) 15:23:31.58ID:EJ9y/eYt0 >>208
pdfは元々バイナリファイル
それをテキストエディタで開けばその画像みたいになる
エディタで開く時のエンコーディングが違えば文字化けの見た目も変わる
postするときになんで変換しないといけないの?
pdfは元々バイナリファイル
それをテキストエディタで開けばその画像みたいになる
エディタで開く時のエンコーディングが違えば文字化けの見た目も変わる
postするときになんで変換しないといけないの?
210デフォルトの名無しさん (ワッチョイ 136c-XDX8)
2017/09/17(日) 15:37:36.74ID:QbcXsmvT0211デフォルトの名無しさん (ワッチョイ 136c-XDX8)
2017/09/17(日) 18:33:42.58ID:QbcXsmvT0 そしてこれが>>208のマクロでpdfを変換してvbaから投稿した時のpostしているデータです
https://i.imgur.com/0LlxHf3.png
明らかに文字化けの雰囲気が違うこれだと投稿したpdfを開こうとしても「画像データに不足があります」と出てpdfが開けません
postデータは同じツールで表示していますのでvbaでの変換の方法に問題があるのかと思ってます
>>208の画像がこの画像と違ってどういう形式?なのか分かれば調べようもあると思うのですがいかがでしょうか
https://i.imgur.com/0LlxHf3.png
明らかに文字化けの雰囲気が違うこれだと投稿したpdfを開こうとしても「画像データに不足があります」と出てpdfが開けません
postデータは同じツールで表示していますのでvbaでの変換の方法に問題があるのかと思ってます
>>208の画像がこの画像と違ってどういう形式?なのか分かれば調べようもあると思うのですがいかがでしょうか
212デフォルトの名無しさん (ワッチョイ 5b6d-M8tZ)
2017/09/17(日) 19:10:29.54ID:qW/WD7mR0 バイナリ変換とか変なことをするからややこしくなっている
データの解析なんてせんでいい
ファイルは素直にファイルのまま扱えばok
http://www.excel.studio-kazu.jp/kw/20140404154224.html
で、ここ見ておもったんだけど、htmlファイル作ってform用意して、submitすればいいだけじゃない?
ファイルが何個もあるとめんどくさいけど
データの解析なんてせんでいい
ファイルは素直にファイルのまま扱えばok
http://www.excel.studio-kazu.jp/kw/20140404154224.html
で、ここ見ておもったんだけど、htmlファイル作ってform用意して、submitすればいいだけじゃない?
ファイルが何個もあるとめんどくさいけど
213デフォルトの名無しさん (ワッチョイ 136c-XDX8)
2017/09/17(日) 21:01:40.83ID:QbcXsmvT0 >>212
前にそちらのサイトも参考にさせて頂いて、投稿はできたのですがpdfが開けなくて、
送信データももっとひどい文字化けになってしまい諦めてました
https://imgur.com/p1huKGY.jpg
unicodeで送信しているのを調整する必要があると書かれていたのですがそれが原因でしょうか・・・
ちなみに自分の使い方としてはそのサイトのようにグループウェアのキャビネットに投稿する形では無く、
仕事で使っているサイトのフォームで投稿する際に添付ファイルとしてpdfを付けるのが目的なのですが
下の方に書いてあるのはSet objIE = CreateObject("Internetexplorer.Application") 的なIEに直接vbaでsubmitさせるメソッドの事でしょうか?
今のところ、投稿する際にプルダウンや入力フォームで様々な値を入力しなければならなくて、
添付ファイルが無い状態での投稿は問題無く行えるようになったのですが
添付ファイルだけはどうにも壊れてしまうというのが現状なので何とかpdfもこのままpostできないかなぁ・・・というのが現状です
説明が下手で申し訳ないのですがどなたかアドバイス頂けたらと思います
前にそちらのサイトも参考にさせて頂いて、投稿はできたのですがpdfが開けなくて、
送信データももっとひどい文字化けになってしまい諦めてました
https://imgur.com/p1huKGY.jpg
unicodeで送信しているのを調整する必要があると書かれていたのですがそれが原因でしょうか・・・
ちなみに自分の使い方としてはそのサイトのようにグループウェアのキャビネットに投稿する形では無く、
仕事で使っているサイトのフォームで投稿する際に添付ファイルとしてpdfを付けるのが目的なのですが
下の方に書いてあるのはSet objIE = CreateObject("Internetexplorer.Application") 的なIEに直接vbaでsubmitさせるメソッドの事でしょうか?
今のところ、投稿する際にプルダウンや入力フォームで様々な値を入力しなければならなくて、
添付ファイルが無い状態での投稿は問題無く行えるようになったのですが
添付ファイルだけはどうにも壊れてしまうというのが現状なので何とかpdfもこのままpostできないかなぁ・・・というのが現状です
説明が下手で申し訳ないのですがどなたかアドバイス頂けたらと思います
214デフォルトの名無しさん (ワッチョイ 11af-6PtN)
2017/09/18(月) 11:37:33.30ID:d9P11nJN0 セルB4から始めて、右に8列‘’○‘’を順番に書き込んでからB5に下がってまた8列書き込む。それを10行繰り返すにはどういうコードになります?
215デフォルトの名無しさん (アークセー Sx4d-+IhZ)
2017/09/18(月) 12:09:05.81ID:Y2wXgXiBx216デフォルトの名無しさん (アークセー Sx4d-+IhZ)
2017/09/18(月) 12:10:08.02ID:Y2wXgXiBx >>215
Cells(5, 2)から始めて→Cells(4, 2)から始めて
Cells(5, 2)から始めて→Cells(4, 2)から始めて
217デフォルトの名無しさん (ワッチョイ 2baa-o7xi)
2017/09/18(月) 12:28:31.10ID:XMy/3GFW0 ネットワーク上のフォルダにファイルを保存する時、
初回時のみ若干保存に時間がかかります。
一度実行したあとにすぐ実行すると、
既にネットワーク接続が確立しているからなのか、比較的早く保存できます。
保存は普通にsaveasで、UNCパスで保存しているのですが、
この初回保存時に時間がかからずに保存できる方法ないでしょうか。
初回時のみ若干保存に時間がかかります。
一度実行したあとにすぐ実行すると、
既にネットワーク接続が確立しているからなのか、比較的早く保存できます。
保存は普通にsaveasで、UNCパスで保存しているのですが、
この初回保存時に時間がかからずに保存できる方法ないでしょうか。
218デフォルトの名無しさん (スププ Sdb3-YAaM)
2017/09/18(月) 12:39:51.48ID:QSt8wYFod >>214
「セルB4から始めて、右に8列‘’○‘’を順番に書き込んでからB5に下がってまた8列書き込む。それを10行繰り返す」コード。
「セルB4から始めて、右に8列‘’○‘’を順番に書き込んでからB5に下がってまた8列書き込む。それを10行繰り返す」コード。
219デフォルトの名無しさん (ワッチョイ 11af-6PtN)
2017/09/18(月) 13:39:45.60ID:d9P11nJN0220デフォルトの名無しさん (アウアウカー Sa1d-+tv6)
2017/09/18(月) 15:00:22.35ID:7Xxpypu9a221デフォルトの名無しさん (アウアウカー Sa1d-+tv6)
2017/09/18(月) 15:03:30.32ID:7Xxpypu9a222デフォルトの名無しさん (ワッチョイ 11a3-mPfK)
2017/09/18(月) 15:33:37.57ID:iDSQnxIm0 http://imgur.com/MSCp7vw.jpg
シート2で選択した人の時間データをシート1からシート2の各セルにコピペしたいです
イベントプロシージャで名前変更時にマクロ起動は出来ました
名前検索&シートを跨いだコピペがどうしても出来ないのでご助力下さい
シート2で選択した人の時間データをシート1からシート2の各セルにコピペしたいです
イベントプロシージャで名前変更時にマクロ起動は出来ました
名前検索&シートを跨いだコピペがどうしても出来ないのでご助力下さい
223デフォルトの名無しさん (ワッチョイ 993d-XDX8)
2017/09/18(月) 16:32:44.21ID:tGO6qMv20 >>222
Accessでデータ管理してSQLで取り出すのが一番苦労がないと思うんだが。
Accessでデータ管理してSQLで取り出すのが一番苦労がないと思うんだが。
224デフォルトの名無しさん (ワッチョイ 5b23-o7xi)
2017/09/18(月) 17:38:30.84ID:zFeh6Anl0 >>222
普通にVLOOKUPで引っ張ってくれば
マクロは必要ないのではなかろうか。
どうしてもVBAでやりたいなら
WorksheetFunction.Matchで検索してみよう。
シート間コピペはRangeの前にワークシートオブジェクトを指定すればできます。
範囲でやる場合はValueを書かないとだめです。
Worksheets("シート2").Range("*:*").Value = Worksheets("シート1").Range("*:*").Value
実際には決め打ちじゃなくてCellsで検索結果に応じて可変にすればよいでしょう。
普通にVLOOKUPで引っ張ってくれば
マクロは必要ないのではなかろうか。
どうしてもVBAでやりたいなら
WorksheetFunction.Matchで検索してみよう。
シート間コピペはRangeの前にワークシートオブジェクトを指定すればできます。
範囲でやる場合はValueを書かないとだめです。
Worksheets("シート2").Range("*:*").Value = Worksheets("シート1").Range("*:*").Value
実際には決め打ちじゃなくてCellsで検索結果に応じて可変にすればよいでしょう。
225デフォルトの名無しさん (スプッッ Sdf3-6PtN)
2017/09/18(月) 18:28:54.10ID:gz3Qfpmld >>221
実際には別シートの値をみて条件付けてYESなら右に一個ずつ値を引っ張りたいだけです。
実際には別シートの値をみて条件付けてYESなら右に一個ずつ値を引っ張りたいだけです。
226デフォルトの名無しさん (ワッチョイ 11a3-24l8)
2017/09/18(月) 20:17:48.27ID:iDSQnxIm0 >>222ですがコピペ記述できました助言ありがとうございました
Sub
Dim ws1 As Worksheet
Dim ws2 As Worksheet
Dim name As String
Dim r As Variant
Set ws1 = Worksheets("シート1")
Set ws2 = Worksheets("シート2")
name = Worksheets("シート2").Range("*").Value
r = Application.WorksheetFunction.Match(name, Worksheets("シート1").Columns("a"), 0)
Application.ScreenUpdating = False
ws1.Activate
ws1.Cells(r, 4).Select
Selection.Resize(1,6).Select
Selection.Copy
ws2.Range("a6:a11").PasteSpecial (xlPasteValues)
Application.ScreenUpdating = True
End Sub
シート切り替え時の画面ちらつきを消すために見よう見まねでScreenUpdatingを入れました
期待通りの動きをしてくれてますがもっと上手い記述を参考程度に教えていただきたいです
VLOOKUPだと直接セルに入力する場合があってその時困るのでVBAでやってみようと思った次第です
ACCESSは諸事情で使えません
Sub
Dim ws1 As Worksheet
Dim ws2 As Worksheet
Dim name As String
Dim r As Variant
Set ws1 = Worksheets("シート1")
Set ws2 = Worksheets("シート2")
name = Worksheets("シート2").Range("*").Value
r = Application.WorksheetFunction.Match(name, Worksheets("シート1").Columns("a"), 0)
Application.ScreenUpdating = False
ws1.Activate
ws1.Cells(r, 4).Select
Selection.Resize(1,6).Select
Selection.Copy
ws2.Range("a6:a11").PasteSpecial (xlPasteValues)
Application.ScreenUpdating = True
End Sub
シート切り替え時の画面ちらつきを消すために見よう見まねでScreenUpdatingを入れました
期待通りの動きをしてくれてますがもっと上手い記述を参考程度に教えていただきたいです
VLOOKUPだと直接セルに入力する場合があってその時困るのでVBAでやってみようと思った次第です
ACCESSは諸事情で使えません
227デフォルトの名無しさん (ワッチョイ 11af-6PtN)
2017/09/18(月) 20:45:41.88ID:d9P11nJN0 この小汚いコードなんとかなりませんか?
https://i.imgur.com/PH6sTKr.jpg
https://i.imgur.com/PH6sTKr.jpg
228デフォルトの名無しさん (ワッチョイ 5b6d-UUct)
2017/09/18(月) 20:58:13.91ID:jDUrs+BF0 >>227
まず写真じゃなくてプリントスクリーンで
まず写真じゃなくてプリントスクリーンで
229デフォルトの名無しさん (ワッチョイ 5b23-o7xi)
2017/09/18(月) 21:06:56.54ID:zFeh6Anl0 >>226
たぶんマクロ記録を改造しているんだと思いますが
Select、Activateはする必要なく
転記処理は
ws2.Range("a6:f6").Value = ws1.Range(ws1.Cells(r,4),ws1.Cells(r,9)).Value
この1行だけでいけるはず。
=の右辺と左辺が同じ大きさの範囲である必要あり。
範囲は実際のシートのに書き換えてお試しを。
たぶんマクロ記録を改造しているんだと思いますが
Select、Activateはする必要なく
転記処理は
ws2.Range("a6:f6").Value = ws1.Range(ws1.Cells(r,4),ws1.Cells(r,9)).Value
この1行だけでいけるはず。
=の右辺と左辺が同じ大きさの範囲である必要あり。
範囲は実際のシートのに書き換えてお試しを。
230デフォルトの名無しさん (ワッチョイ 11af-6PtN)
2017/09/18(月) 21:26:16.39ID:d9P11nJN0 >>228
パソコンのネットがゴミ過ぎてパソコンからは書き込めないんです...
パソコンのネットがゴミ過ぎてパソコンからは書き込めないんです...
231デフォルトの名無しさん (ワッチョイ 5b23-o7xi)
2017/09/18(月) 21:38:27.20ID:zFeh6Anl0 >>227
応用シートを変数に突っ込む
WithにRange指定まで突っ込む
RangeをCellsにして列参照を変数にする
オフセットの数値を変数にする
これでループで変数をインクリメントしていけばスッキリしそう。
応用シートを変数に突っ込む
WithにRange指定まで突っ込む
RangeをCellsにして列参照を変数にする
オフセットの数値を変数にする
これでループで変数をインクリメントしていけばスッキリしそう。
232デフォルトの名無しさん (ワッチョイ 993d-XDX8)
2017/09/18(月) 21:41:20.89ID:tGO6qMv20 >>227
Sub foo()
Str_NowRng = FindRange.Offset(0, 1).Address
Str_ShuName = FindRange.Offset(0, 1).Value
Set 基礎 = Worksheets("基礎")
Set 応用 = Worksheets("応用")
i = 4
Do While Str_ShuName = "A"
For j = 1 To 5
応用.Cells(i, j + 1).Value = 基礎.Range(Str_NowRng).Offset(0, j).Value
If j = 3 Then 応用.Cells(i, j + 1).Value = 応用.Cells(i, j + 1).Value + Val(MSUN)
Next
With 基礎.Range(Str_NowRng).Offset(1, 0)
Str_ShuName = .Value
Str_NowRng = .Address
End With
Loop
End Sub
設計が腐ってる臭いがするので、小手先直したところで意味ないと思うけど。
Sub foo()
Str_NowRng = FindRange.Offset(0, 1).Address
Str_ShuName = FindRange.Offset(0, 1).Value
Set 基礎 = Worksheets("基礎")
Set 応用 = Worksheets("応用")
i = 4
Do While Str_ShuName = "A"
For j = 1 To 5
応用.Cells(i, j + 1).Value = 基礎.Range(Str_NowRng).Offset(0, j).Value
If j = 3 Then 応用.Cells(i, j + 1).Value = 応用.Cells(i, j + 1).Value + Val(MSUN)
Next
With 基礎.Range(Str_NowRng).Offset(1, 0)
Str_ShuName = .Value
Str_NowRng = .Address
End With
Loop
End Sub
設計が腐ってる臭いがするので、小手先直したところで意味ないと思うけど。
233デフォルトの名無しさん (ワッチョイ 11a3-mPfK)
2017/09/18(月) 21:46:33.83ID:iDSQnxIm0234デフォルトの名無しさん (ワッチョイ 6169-XDX8)
2017/09/18(月) 21:49:23.00ID:m1CRg0zL0 userform2のcaptionをそのままuserform8のcaptionに代入使用しています。
型が一致しませんのエラーが出ます。
先ほどまで問題なく動いていたのですが、突然出るようになりました。
UserForm8.Caption = UserForm2.Caption
や
Dim FormName as string
FormName = UserForm2.Caption
Userform8.Caption = FormName
でもエラーが出てしまいます・・・。
型が一致しませんのエラーが出ます。
先ほどまで問題なく動いていたのですが、突然出るようになりました。
UserForm8.Caption = UserForm2.Caption
や
Dim FormName as string
FormName = UserForm2.Caption
Userform8.Caption = FormName
でもエラーが出てしまいます・・・。
235デフォルトの名無しさん (ワッチョイ 5b6d-A1Wv)
2017/09/18(月) 21:59:25.32ID:jDUrs+BF0 >>234
何でそんなことやってるか知らんけど…
標準モジュールに書いたら動いた
Sub foo()
UserForm1.Caption = UserForm2.Caption
End Sub
とりあえずイミディエイトウィンドウやウオッチ士気で、
UserForm2.Caption
に何が入ってるか見てみたら?
何でそんなことやってるか知らんけど…
標準モジュールに書いたら動いた
Sub foo()
UserForm1.Caption = UserForm2.Caption
End Sub
とりあえずイミディエイトウィンドウやウオッチ士気で、
UserForm2.Caption
に何が入ってるか見てみたら?
236デフォルトの名無しさん (ワッチョイ 11af-6PtN)
2017/09/18(月) 22:04:09.39ID:d9P11nJN0 Str_NowRng=FindRange.Offset(0,1).address
Str_ShuName=FindRange.Offset(0,1).Value
With Worksheets(〃基礎〃)
i=4
Do While Str_ShuName=〃A〃
Worksheets(〃応用〃).Range(〃B〃&i).Value=.Range(〃Str_NowRng〃).Offset(0,1).Value
Worksheets(〃応用〃).Range(〃C〃&i).Value=.Range(〃Str_NowRng〃).Offset(0,2).Value
Worksheets(〃応用〃).Range(〃D〃&i).Value=.Range(〃Str_NowRng〃).Offset(0,3).Value+val(MSun).Value
Worksheets(〃応用〃).Range(〃E〃&i).Value=.Range(〃Str_NowRng〃).Offset(0,4).Value
Worksheets(〃応用〃).Range(〃F〃&i).Value=.Range(〃Str_NowRng〃).Offset(0,5).Value
Str_Name=.Range(〃Str_NowRng〃).Offset(1,0).Value
Str_NowRng=Range(Str_NowRng).Offset(1,0).address
i=i+1
Loop
i=14
Do While Str_ShuName=〃B〃
中身同じ
Loop
i=32
Do While Str_ShuName=〃C〃
中身同じ
Loop
こんな感じです。
パソコン見ながら打ったので間違って打ってたらごめんなさい。
Str_ShuName=FindRange.Offset(0,1).Value
With Worksheets(〃基礎〃)
i=4
Do While Str_ShuName=〃A〃
Worksheets(〃応用〃).Range(〃B〃&i).Value=.Range(〃Str_NowRng〃).Offset(0,1).Value
Worksheets(〃応用〃).Range(〃C〃&i).Value=.Range(〃Str_NowRng〃).Offset(0,2).Value
Worksheets(〃応用〃).Range(〃D〃&i).Value=.Range(〃Str_NowRng〃).Offset(0,3).Value+val(MSun).Value
Worksheets(〃応用〃).Range(〃E〃&i).Value=.Range(〃Str_NowRng〃).Offset(0,4).Value
Worksheets(〃応用〃).Range(〃F〃&i).Value=.Range(〃Str_NowRng〃).Offset(0,5).Value
Str_Name=.Range(〃Str_NowRng〃).Offset(1,0).Value
Str_NowRng=Range(Str_NowRng).Offset(1,0).address
i=i+1
Loop
i=14
Do While Str_ShuName=〃B〃
中身同じ
Loop
i=32
Do While Str_ShuName=〃C〃
中身同じ
Loop
こんな感じです。
パソコン見ながら打ったので間違って打ってたらごめんなさい。
237デフォルトの名無しさん (ワッチョイ 5b6d-A1Wv)
2017/09/18(月) 22:04:38.56ID:jDUrs+BF0 〃応用〃
なんかかわいい
なんかかわいい
238デフォルトの名無しさん (ワッチョイ 5b6d-A1Wv)
2017/09/18(月) 22:05:45.55ID:jDUrs+BF0239デフォルトの名無しさん (ワッチョイ 11af-6PtN)
2017/09/18(月) 22:09:21.04ID:d9P11nJN0 >>232
ありがとうございます。すごい助かります。感謝です!
ありがとうございます。すごい助かります。感謝です!
240デフォルトの名無しさん (ワッチョイ 11af-6PtN)
2017/09/18(月) 22:09:42.61ID:d9P11nJN0 >>238
はい。ありがとうございました。
はい。ありがとうございました。
241デフォルトの名無しさん (ワッチョイ 6169-XDX8)
2017/09/18(月) 22:09:56.31ID:m1CRg0zL0 >>235 ありがとうございます。 他のユーザーフォームではできましたので、USERFROM8自体がおかしくなっている?
直前にエクセルが動作停止しました。その際に壊れてしまい、USERFORM8のオブジェクト名を理解できていないようです。
そんなことはありますでしょうか?
直前にエクセルが動作停止しました。その際に壊れてしまい、USERFORM8のオブジェクト名を理解できていないようです。
そんなことはありますでしょうか?
242デフォルトの名無しさん (ワッチョイ 5b6d-A1Wv)
2017/09/18(月) 22:13:12.43ID:jDUrs+BF0243デフォルトの名無しさん (JP 0H35-+tv6)
2017/09/18(月) 22:25:10.48ID:SpW0zo9eH244デフォルトの名無しさん (アウアウカー Sa1d-+tv6)
2017/09/18(月) 22:34:50.16ID:xepoeGeEa >>227
インデント統一してる?
俺は4つ(標準)にしてるけど、少しでもズレてる所があると気持ち悪い。
こういうコード貰ったらCtrl + A押して、
Shift + Tabを連続20回ぐらい押してしまう。
んで、全ての行のインデント振り直す。
それから、2つのシート使ってるようだけど自分ならそれぞれを変数に入れるな。
1つはWith使ってるから良いとして、もう1つだけでも変数に入れる。
まあ、自分の場合は基本的にブックから省略しないのでWithや変数に入れないと長くなるんだわ。
それからDo While〜Loopの中だけど、Offsetとiの併用してるのは何で?
全部iで書き直したら?
そうすればStr_ShuNameとかStr_NowRngとか必要無くなるよ。
Str_ShuNameの場所もi使って1つずつ下がって行くんでしょ。
Do Whileの条件もi使って表したらStr_ShuNameへの代入も必要無いよね。
それから、Range("B" & i ).Valueって記述だけど、RangeじゃなくてCells使えば列方向もj使って繰り返しが使えるよね。
まあ、真ん中だけ少し違うから恩恵少ないけど。
インデント統一してる?
俺は4つ(標準)にしてるけど、少しでもズレてる所があると気持ち悪い。
こういうコード貰ったらCtrl + A押して、
Shift + Tabを連続20回ぐらい押してしまう。
んで、全ての行のインデント振り直す。
それから、2つのシート使ってるようだけど自分ならそれぞれを変数に入れるな。
1つはWith使ってるから良いとして、もう1つだけでも変数に入れる。
まあ、自分の場合は基本的にブックから省略しないのでWithや変数に入れないと長くなるんだわ。
それからDo While〜Loopの中だけど、Offsetとiの併用してるのは何で?
全部iで書き直したら?
そうすればStr_ShuNameとかStr_NowRngとか必要無くなるよ。
Str_ShuNameの場所もi使って1つずつ下がって行くんでしょ。
Do Whileの条件もi使って表したらStr_ShuNameへの代入も必要無いよね。
それから、Range("B" & i ).Valueって記述だけど、RangeじゃなくてCells使えば列方向もj使って繰り返しが使えるよね。
まあ、真ん中だけ少し違うから恩恵少ないけど。
245デフォルトの名無しさん (ワッチョイ 5b6d-oZA3)
2017/09/18(月) 22:45:05.41ID:jDUrs+BF0 >>244
sublimnetextとか使ってみてはどうだろう
コピペするだけであら不思議、自動インデント
https://i.imgur.com/rexlwm0.png
VBEと連携できたら便利なんだけど、残念ながらできない
sublimnetextとか使ってみてはどうだろう
コピペするだけであら不思議、自動インデント
https://i.imgur.com/rexlwm0.png
VBEと連携できたら便利なんだけど、残念ながらできない
246デフォルトの名無しさん (アウアウカー Sa1d-+tv6)
2017/09/18(月) 23:05:45.45ID:xepoeGeEa247デフォルトの名無しさん (ワッチョイ 5b6d-oZA3)
2017/09/18(月) 23:28:32.94ID:jDUrs+BF0■ このスレッドは過去ログ倉庫に格納されています
