Excel VBA質問スレ Pa ..
[2ch|▼Menu]
466:デフォルトの名無しさん
08/10/08 21:41:57
>>464
 >>1★5

ここは右も左も解らない奴が来るところじゃない
どういう処理がしたくて、どういうコードを書いたが、どの部分で躓いてるのかを
具体的に質問できるレベルになってから出直すか
急ぎや勉強が嫌なら、金払ってVBAコード書いてくれるところに依頼しろ

車を運転するには免許が居るように、便利な物を利用するにはそれに応じた資格(スキル)が要る
その資格無しに利便性を求めるなら、車でもタクシー使ったり運転手雇ったりするように
金使って解決しろ

467:デフォルトの名無しさん
08/10/08 21:48:54
指定されたフォルダ中のエクセルファイルの一覧を取得する処理は、
453、454の中に書かれていますよ。
あと、434で紹介されたurlも参考になると思います。
文法云々ということであれば、エクセルVBAの入門書を入手するか、
ウェブの初心者向けサイトを調べてみてください。
それから、このスレのbPをよく読んでください。


468:デフォルトの名無しさん
08/10/08 21:54:43
例えばデバッグの黄色い行を削除したりすればうまくいくのでしょうか

その場合保存さえしなければ誰かが作成された、いつもは健全に働くモジュールを壊す事にはなりませんよね?
いつもエラーなど発生しないのに私が要らないマクロを被せたせいで何かがどうかなったのでしょうか
自分のだけ解放しても他のマクロに影響があるのでしょうか


それだけではないのです
今日は昼飯時に453さんの回答に気づきお礼をカキコするつもりが横に置いていた鞄に散歩中の犬がしっこをかけたのです!
こんな目に遭う人がいますでしょうか

仕事もテンパリは続き少々のアルコールでは何にもなりません
皆様もこの寒暖の激しさにはお気をつけ下さい

469:453,454
08/10/08 22:11:56
>465
まだ、私が453〜454に書いたものは実行していないと思いますが、念のため書いておきます。
上記マクロは新規ブックの標準モジュールに書いてください。(ファイル名は任意ですが、
以下の説明ではマクロブックと呼びます)
あなたが仕事で扱うブックには絶対に書かないでください。
エクセルを起動したらマクロブックを開き、ツール−マクロ−編集− prog_408 を選びます。
マクロ文中のフォルダ指定とかセル範囲などを実際のものに変更したうえで、いったん保存。
そのうえでprog_408を実行してみてください。
なお、私はWindowsXp、Excel2003で試しています。

ここまで書いたところで、468を見たので追加
465で書いてある「自分のショートキーのモジュールを解放」が気になる。そのモジュールにはあなたの
マクロだけしか書いてなかったのかな? 本当に「自分のだけ」のモジュールでしょうか?
ひとつのモジュールには複数のマクロが記録されるんですよ。
壊れてしまったものは、現場で対応してもらうしかないと思います。

470:デフォルトの名無しさん
08/10/08 22:56:33
なんなの、最近の流れ

471:デフォルトの名無しさん
08/10/08 23:34:46
スレbP−★5を読まない初心者ばっかり。


472:デフォルトの名無しさん
08/10/09 00:01:02
469さん、ご丁寧にありがとうございました
モジュールが単独だったか複数かという事ですが、珍しくうまくいった為解放する前にモジュールを表示させて自分の記録マクロを印刷しました
そこには15行程度の構文が書かれていたのみですので下の方にもあったか?となるとおそらくなかったような……

なお記録する前に保存先を作業中のブックよりもう一つ深い範囲に適用する、を選択したと思います
これがいけなかったのかもしれません

あぁ楽をするのも大変ですね……
お先にお休みさせて頂きます。ありがとうございました。。

473:デフォルトの名無しさん
08/10/09 07:42:16
過去スレですね?
現在PC環境にありませんが是非訪ねてみたいと思います! 晴れた今日も良い一日を!!

474:デフォルトの名無しさん
08/10/09 08:47:46
>>473
>>1の★5のことだ・・・
マジでテンプラ読めないやつ増えてるのか?

475:デフォルトの名無しさん
08/10/09 09:51:50
そりゃ犬もションベンかけるわ

476:デフォルトの名無しさん
08/10/09 10:17:49
>>465
どのブックにもVBAモジュールがある…だと?
あんた、「1ブックにはそれぞれ1シートしかないから、全シートを
一旦まとめて、後でまたバラして保存すれば…」なんて書いてたよな。
それでどういうことになるのかわかってるのか?

あんたみたいなのは下手なことに手を出すな。
気づかない内に絶対まわりに迷惑かけてるから。
後始末する側の身にもなれ。

477:デフォルトの名無しさん
08/10/09 11:00:15
2chで相談する前にそのブック配布したやつに相談するのが先だろ・・・
他にVBAとか入ってるなら下手したら変数名とかかぶるし

478:デフォルトの名無しさん
08/10/09 11:17:51
VBAを勉強する前に、「仕事のやり方」から勉強するべき

479:デフォルトの名無しさん
08/10/09 18:06:20
Excel2000でメニュー(データ>並べ替え)で現在のソート状態が表示されますが
この値をVBAで取得する方法があれば教えて下さい。orz


480:デフォルトの名無しさん
08/10/10 21:21:37
2chねらならVBEオブジェクトくらい使ったことあるよな

481:デフォルトの名無しさん
08/10/11 03:49:58
フォーム画面/テキストボックスからの入力で、「型が一致しません。」が出てしまう。
【モジュール】
Private Foo As Integer
public sub Bar(Baz As Integer)
Foo = Baz
End Sub

【フォーム】
Private Sub TextBox1_Change()
On Error Goto Err
If ( Len(TextBox1.Text) > 0 ) And ( IsNumeric(TextBox1.Text) = True ) Then
Call Bar(TextBox1.Text)
Else
TextBox1.Text = ""
End If
Err:
If Err.Number <> 0 Then
MsgBox Err.Description
End If
End Sub


482:デフォルトの名無しさん
08/10/11 07:15:22
いったんエラー処理はずしてどの行でエラーか書いてくれよ
まあfooかbazに入れてる値がまずいんだろう

483:デフォルトの名無しさん
08/10/11 07:46:33
472です。その節はお世話になりました
犬に聖水をかけられた鞄は無事洗濯いたしました

ところで9桁の番号を取得した後に'抽出とりまとめ'の長いコードの最初でデバッグが出始めた話でしたが
なんと手順を間違えていたらしい事が昨日判明しました
そのとりまとめ用の長いコードを実行するにはエクセルを全部閉じておいて、マクロブックを先に開いた後
例の9桁番号を取得したブックたちを開かなければならなかったのが、9桁の事で頭いっぱいでそちらを先に開いていたのです

恐らくこれが原因だったようです。まだ1回しか成功していませんがこの、全部閉じとけよ!はどのコードだったのでしょう?
しかもそこで黄色になる訳ではないのですね??
もっと丁寧なデバッグ説明表示ならいいのに……

484:デフォルトの名無しさん
08/10/11 07:59:35
なお、1枚だけだと思っていたのにシートがもう一枚あるもののマクロの組んであるブックはごく一部だけで全ブックではありません
ほんとに単純なシートなので高度なコード?ではないようです
デバッグが出てヒィヒィ言っていたマクロブックも長いコードながら実行できない間は手作業でカバーできるものではありました
けれど実行できればそれはそれでたいへん楽です!

なんとか仕事が手薄な時間を作り出し教えて頂いたコードに挑戦できる日がくるのを夢みて…

485:469
08/10/11 10:09:56
>483,484

「全部閉じとけよ!はどのコードだったのでしょう?」への回答→そんなコードはない。
まさか、最大42ものブックを開いたところでマクロを実行させるつもりだったのか?
[42=マクロブック+(2列×40行のデータのブック)+メールで送られる40ブック]

FILE_NAME = Dir(SEARCH_PATH & "*.xls", vbNormal)
Do While FILE_NAME <> Empty ' 繰り返し
  Call PROC_1
Loop

WK_PATH = SEARCH_PATH & FILE_NAME
Workbooks.Open Filename:=WK_PATH
Set BK_O = Workbooks(FILE_NAME)

BK_O.Close
FILE_NAME = Dir()
でファイル一覧からひとつずつ開いて転記してクローズしている。
ちなみに、マクロを実行すると変更を保存するかどうかのダイアログが表示されるはず。
その際A4セルの12桁の番号に対応した9桁の番号がA6セルに入っているので確認できる。


486:481
08/10/11 12:15:07
フォーム画面/テキストボックスからの入力で、「型が一致しません。」が出てしまう。
【モジュール】
Private Foo As Integer
public sub Bar(Baz As Integer)
Foo = Baz
End Sub

【フォーム】
Private Sub TextBox1_Change()
On Error Goto Err
If ( Len(TextBox1.Text) > 0 ) And ( IsNumeric(TextBox1.Text) = True ) Then
Call Bar(TextBox1.Text)
Else
TextBox1.Text = ""
End If
Err:
If Err.Number <> 0 Then
● MsgBox Err.Description 'テキストボックスにキーボードから値を入力したとき、ここでエラーが出る。
End If
End Sub


487:デフォルトの名無しさん
08/10/11 12:45:27
ByRef渡しでもVBAの方でうまくやってくれたっけ?

488:デフォルトの名無しさん
08/10/11 14:52:03
>>486
だからOn Error外せって

489:デフォルトの名無しさん
08/10/11 16:23:17
>>485
>>483-484は、まだおまいの作ったコードは実行してないと思う
ネカフェで印刷して会社へ持って行って、見ながら手打ちしてからだから、
来年ぐらいじゃないかな

490:479
08/10/11 17:48:11
キーワードを変えてググってみても見つけられなかった。
VBAからソートプロパティを取得する方法は無いのでしょうか?


491:デフォルトの名無しさん
08/10/11 18:52:51
>>486

テキストボックスの値を関数に渡す前にVal()で数値に
変換したら。

492:デフォルトの名無しさん
08/10/11 19:03:24
>>490
> キーワードを変えてググってみても見つけられなかった。
> VBAからソートプロパティを取得する方法は無いのでしょうか?
>

ソートの設定のこと?
これならマクロの記録でできるけど。
Range.Sort Key1:= ・・・・ Order1:= ・・・・

493:デフォルトの名無しさん
08/10/11 19:10:50
>492
これまでの書き込みから、ソートの「設定」ではなく「設定内容の参照」のようです。
なので、今まで回答がない。詳しい人の目にとまるまで回答はないかも。


494:デフォルトの名無しさん
08/10/11 20:58:41
>>479
単純にセルの値取得すればいいだけじゃないの??

495:デフォルトの名無しさん
08/10/11 23:01:15
OS: WindowsXP
Excel: 2007

チャートの目盛線のスタイルを「破線」にしたいと思っていますが、
以下のようなコードを実行しても、「長破線」になってしまいます。

ActiveChart.Axes(xlCategory).MajorGridlines.Border.LineStyle = xlDash

LineStyleの値として設定できる値(xlDash, xlDashDot, xlDashDotDotなど)を
すべて試しましたが、やはり破線にはなりませんでした。
今は、手動で「目盛線の書式設定」→「線のスタイル」→「実線/点線」から、破線に設定しています。
VBAからは、チャートの目盛り線のスタイルを破線にはできないのでしょうか?

496:デフォルトの名無しさん
08/10/12 00:38:29
エクセル2002 ウインドウズxp で質問!

@列を選択
AダイアログBoxに文字を入れ検索
B検索にヒットしたセルの左のセルに*を入力

具体例
@’D列・F列を選択
A’ダイアログBOXに検索したい文字 イロハ を入力
B’ イロハニホ が入力されてるセルD1の左C1と
  アイロノカニ が入力されてるセルF3の左E3に*を入力

この作業のうちAとB(例はA’B’)をマクロで効率化したいと思っています。
詳しい方、コードを教えて下さい m( )m

この板を知る前に総合相談所にカキコしてしまったことをご容赦願います。

497:デフォルトの名無しさん
08/10/12 05:46:19
置換でいいじゃんd

498:デフォルトの名無しさん
08/10/12 07:07:43
>>496
先に総合相談所にも謝って来いよ

499:479
08/10/12 13:44:23
>>493
おっしゃる通り、ソートの設定状態を参照したいのです。

Excelの並べ替えメニューに現在のソート状態が表示されるので、何処かに
ソート状態を保持している筈なのです。
これを取得する方法が分かりません。


500:デフォルトの名無しさん
08/10/12 16:54:02
>499
で、(直前に行われたであろう手動による)ソートの各種設定を参照してナニしようとしてるんですか?

501:デフォルトの名無しさん
08/10/12 17:29:28
>>500
シートAにデータがあり、
シートBがアクティブ時にはシートAの選択データからシートBを編集します
シートCがアクティブ時にはシートAの選択データからシートCを編集します
シートBやシートCを編集する時のシートAのソート条件が異なるので
編集できるかどうかを判断するためにソート状態を知りたいのです。

実際には、プログラム用ブックと上記のデータ用ブックに分かれていて
プログラム用ブック側でデータブックのイベントを拾って汎用的に処理
しています。


502:500
08/10/12 19:23:34
>501
シートAは手動でソートするんですか? シートAのソートをマクロで実行して、
その際のパラメータをデータブックに記録しておけばどうですか?
シートAのソートのパターンをいくつかつくっておいてマクロ実行時選ぶように
したらいいのでは?

503:デフォルトの名無しさん
08/10/12 22:26:40
シートA(B&Cも)は別ブック(任意のデータブック)ですので、単独で開いて
ソートされる事も想定が必要です。

プログラムブックからデータブックを開いて、データブックに定義されている
内容によりデータブックのアクティブシートを編集しています。
データブック側にはVBAコード等の記述は不要であり、プログラムブック側に
VBAコードを記述し、データブックのイベントを拾ってデータブックの編集を
行っています。
データブックは任意のxlsファイルが指定できます。


504:デフォルトの名無しさん
08/10/12 23:42:02
誰か早く無理だって言ってやれよ

505:デフォルトの名無しさん
08/10/13 00:01:29
無理です

506:503
08/10/13 00:02:44
自分も最初は無理だと思っていたのですが、メニューで現在のソート状態が表示
(Excel2000)されている事に気付いたので、取得する方法がある筈と考えた次第
です。
Excel2007を一寸見たら、現在のソート状態は表示されないみたいですね。
諦めかな...

507:デフォルトの名無しさん
08/10/13 00:27:16
無理かどうかは知らんけど、Excelが覚えてるからといって、それを取得できる公開I/Fがあるとは限らない。

508:デフォルトの名無しさん
08/10/13 00:35:54
二つのセルを比較して降順か昇順かしらべることはできるんじゃないの?

509:デフォルトの名無しさん
08/10/13 00:46:52
無理です

510:デフォルトの名無しさん
08/10/13 01:40:17
ExcelVBAの関数のコールグラフを作成してくれるツールってある?
ちなみにDoxygen+VBFilterは関数の中は全く解析してくんなかった。


511:デフォルトの名無しさん
08/10/13 14:36:23
フォルダにある複数の報告書のファイル名を変更したいのですが
方法を知っている方おられませんか?

報告書(Aさん)→済_報告書(Aさん)
報告書(Bさん)→済_報告書(Bさん)
報告書(Cさん)→済_報告書(Cさん)

上記のように
()内の名前が変わってもファイル名を

報告書()→済_報告書()

と変更できる方法を探しています。

何か良い方法を知っている方がいれば教えて頂けないでしょうか?
お願いします。


512:デフォルトの名無しさん
08/10/13 15:12:43
ファイル名を fileName As String とすると、
まず fileName LIKE "報告書(*)" で想定した書式であることを確認した後、
fileName = "済_報告書(" & Mid(fileName,5,Len(fileName)-(4+1)) & ")"
って感じ?

513:デフォルトの名無しさん
08/10/13 16:40:36
>>511
スレ違い
ファイル名変更ぐらいならRENコマンドでできる。

514:512
08/10/13 17:50:21
この条件だと、wsh使わないと一寸厳しいとは思う。
というか、何かしら加工した上でSaveAsする時のファイル名の話だと思っていたのだが。
違うの? >>511

515:デフォルトの名無しさん
08/10/13 18:51:55
>>1

516:デフォルトの名無しさん
08/10/13 18:58:06
>>511
Name ステートメント

517:デフォルトの名無しさん
08/10/13 19:15:55
>>514さん
返信遅くなってすみません
レス有難うございます。

>>何かしら加工した上でSaveAsする時のファイル名の話だと思っていたのだが。
はい、ファイルを一度開いて、ある個所にチェックを付けてからファイル名を変更して保存します。
最初は>>516さんの言うように Nameをつかってみようと思ったのですが()内の名前部分が
ネックになって上手くいきませんでした。

>>513>>515さん
スレ違いでしたか、すみませんでした。

518:デフォルトの名無しさん
08/10/13 20:08:55
>>506
xlsファイルフォーマットが公開されているので(英語)、
解析してソート部分の設定を読み出すコード書いたら。

519:デフォルトの名無しさん
08/10/13 21:24:53
何がわからないのかわからなかった

520:デフォルトの名無しさん
08/10/13 21:42:57
なんでわかってもらえないのかがわからない

521:デフォルトの名無しさん
08/10/13 22:54:48
なんでわかってもらえると思えるのかがわからない

522:デフォルトの名無しさん
08/10/14 10:15:24
>>506
ヘルプには「シートごとに保存される」
とは書いてあるがどうやって取り出すか書いてないな・・・

ところでそもそも「ソートの設定」で見ようとするのは危なくないか?
コピペされたら最後に使われた「ソートの設定」とは違った並びになってる可能性もあると思う
ソートのパターンが分かってるなら列ごとにどういうソートがかかってるか解析したほうがいいと思う

523:500,502
08/10/14 13:13:28
>506
522に1票
>シートBやシートCを編集する時のシートAのソート条件が異なるので
>編集できるかどうかを判断するためにソート状態を知りたいのです。
とあるので、シートAのデータを上から順に調べるのが一番確実ではないでしょうか?
ソートをプログラムするのは大変だけど、ある規則で並んでいるかどうか調べるだけなら簡単では?

524:506
08/10/14 13:22:48
基本的には保存しない前提で考えていたので、コピペは考えていませんでした。
出直します。orz


525:デフォルトの名無しさん
08/10/14 16:26:52
なんで強制的にソートしちゃいけないのかな
Aが一定の条件でソートされてないとBやCの編集ができないのに、
ソートは人まかせってのが不思議
永遠にソートしてくれなかったらどうするんだろう

ソートされてるかどうかを何かのフラグとして扱うつもりなら、
それこそそんなの信用できないんじゃないの
気まぐれでソートして見てみただけかも知れないし

526:デフォルトの名無しさん
08/10/14 16:57:54
私の勘違いだと思うのですが、どうしても分からないのでお尋ねいたします。
文字列のソートの結果と大小比較(<, >)やStrCompの結果が異なるもの
があるようです。具体的な例をあげると、
"ad-02-mb.html"
"ad-02.html"
の2つ。昇順ソートをすると後者が先に、大小比較では前者が小さいと
なります。マッチング処理ができなくて困っています。解決方法を
お教えください。


527:506
08/10/14 17:42:10
>>525
説明不足でした
BやCの編集が出来ない訳ではなく、グループが分断されてしまうので編集に時間が
多めに要するという事です。
強制的にソートする事も考慮していますが、シートAを選択した時に元の並び順に
戻す必要があります。
別シートにコピーして並べ替えという手もありますが、出来るだけ自由度を持たせ
ておきたいとも思っていますので、ユーザ任せでも良いかなという気もしています。



528:デフォルトの名無しさん
08/10/14 18:03:14
>>526
バージョン差あるかもだけど、option compare は?

>>527
ソートされなくても永遠に作業が滞るわけではないのね。ならよかった
いつの日か希望どおりにソートしてもらえるといいね

529:デフォルトの名無しさん
08/10/14 19:03:09
>>526
その「ソート」って何の事よ

530:デフォルトの名無しさん
08/10/14 19:35:11
>>527
だったら作業用のシート作って、データ全部コピーしてそこで自分の好きなようにソートすりゃええやんか。
そうすれば元データはいじらなくて済むっしょ。んで作業が終わった時に作業用のシートを消せば?

531:デフォルトの名無しさん
08/10/14 19:36:19
そぅっとしてやってくれ。

532:デフォルトの名無しさん
08/10/14 21:16:22
早野乙

533:デフォルトの名無しさん
08/10/14 21:58:59
>526
自分のPC(WinXp Excel2003)で試したら再現したので並べ替えのヘルプを見たら原因判明です。
ヘルプから引用
一重引用符 (') とハイフン (-) は無視されます。ただし、ハイフン以外は同じ文字列がある場合、
ハイフンを含む文字列が後に配置されます。
引用終わり
つまり、並べ替えの時は-が無視されるので、ad-02mb.html と ad-02.html が比較される。
先頭から6文字目は"m"と"."なので、"."のあるad-02.htmlが先になる。大小比較のときは"-"も
比較に利用されるので、bd-02-mb.htmlが先になる。
文字コード(10進表記)では、"-":45 ".":46 "m":109 です。

534:526
08/10/15 22:38:35
>533
おーっ、感動の回答!ありがとうございます。
自分の頭ばかり疑って、ヘルプを見るのを忘れてました。こんな仕様?があったとは。
で、どーすりゃいいのか考えないと。。。
とにかく、ありがとうございました。

535:533
08/10/15 22:54:32
>534
レスがあるとうれしいですね。
引用符を無視するのはわかるけど、なんでハイフンも無視するんだろ。

解決方法で悩んでいるようですが、データをハイフンではなくアンダーバー"_"にしたらだめですか?
処理対象のデータにハイフンとアンダーバーが混在してたらダメだろうけど、ハイフンだけだったら
一括置き換えでアンダーバーにしておいて、処理の後にハイフンに戻すとか。

536:デフォルトの名無しさん
08/10/15 23:00:23
binary

537:デフォルトの名無しさん
08/10/15 23:03:15
ハイフンは、行末で英単語を分割する際に使われるからだな。

538:デフォルトの名無しさん
08/10/15 23:04:22
どのような時に、なぜマッチング処理ができないのかを明記せよ

539:デフォルトの名無しさん
08/10/15 23:08:50
>536
バイナリ・モードの並べ替え(VBAでのsort)ってできるんですか?
エクセルとエクセルVBAのヘルプをみたけど、「大文字と小文字を区別」するMatchCaseの記述は
あるけど、バイナリのことは書いてありません。(Excel2003)

540:デフォルトの名無しさん
08/10/15 23:27:30
マッチング処理ってどういう処理をしてるの?

541:デフォルトの名無しさん
08/10/15 23:35:57
比較にstrcompを使った独自ソート関数書けよ

542:デフォルトの名無しさん
08/10/15 23:48:53
>>539
Option Compare ステートメント

543:542
08/10/15 23:52:53
こっちの勘違いにつき、忘れてcくれ(^^;

544:539
08/10/15 23:57:27
>542
エクセルVBAのヘルプを見てみました。
引用はじめ
Option Compare ステートメントが記述されていないモジュールでは、既定の文字列比較方法
である Binary モードが使われます。
引用終わり
ということは、何も考えずに(手動、マクロとも)ソートしたときがBinary モードなので、
ハイフン"-"を無視しないようにするのは無理なのでは?

545:539
08/10/16 00:03:27
>543
リロードしてませんでした。一晩寝ると忘れますので、ご安心を。

546:デフォルトの名無しさん
08/10/16 01:57:46
で今夜は徹夜ですっと

547:デフォルトの名無しさん
08/10/16 03:44:56
購入日   保証年数
2006/10/05  2
2004/08/12  5
2005/04/22  3

という値があって、購入日から保証年数を足して、今日現在(Date)に達していない(つまりは保証切れ)の場合、
・・・するという場合、

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Column = 1 Then 'もし列がA(1)なら
★ If DateDiff("d", 「現在のセルの日付」+右隣のセルの値(年数), Date) < 0 Then
'今日との日付差がマイナスなら

Target.EntireRow.Font.ColorIndex = 5 'その行のフォント色を青(5)にする
Else
Target.EntireRow.Font.ColorIndex = 0 'その行のフォント色は黒(0)にする
End If
End If
End Sub

保証切れの場合、色をつけたいのですが、
★をどのようにすればいいでしょうか?

548:デフォルトの名無しさん
08/10/16 05:05:36
ある日付から、 n年後 n日後などを求めたい時は dateadd
詳しくはヘルプ読んで
あとそのコードだと保証期間内の時に青になるよ
datediffのヘルプ読んで

549:526
08/10/16 22:42:05
なんだかソートとマッチングの問題でいくつか質問をもらったみたいですが、
Windowsの文字列ソートの問題は、結構話題になっていることがわかりました。
Excel 95までは、単純なソートであったものが、Excel 97から単語ソートとMSの言う、
ハイフン、アポストロフィ無視のソートに変わったみたいですね。単語ソートだと、
アンダースコアも更におかしな挙動になります。私は、"-"を""に、"_"を" "にリプレース
してマッチングする処理にしました。
ちなみにマッチングとは、キーをDo While oldキー >= Newキー で回して、
=のときにマッチング処理を行うものです。このときのキーの大小判定と、ソートの
並び順が異なるために、おかしくなっていました。
みなさんのおかげで、なんとか完成しました。ありがとうございました。



550:デフォルトの名無しさん
08/10/16 22:51:10
説明する気ないのか

551:526
08/10/16 22:52:41
間違えたDo While oldキー >= Newキーはブレーク処理でした。マッチングは
Do While マスターキー >= トランザクションキーでした。


552:デフォルトの名無しさん
08/10/16 23:07:51
もう来なくていいよ

553:デフォルトの名無しさん
08/10/16 23:09:30
そもそもマッチングを勘違いしてると思われる。

554:デフォルトの名無しさん
08/10/17 01:13:46
マイッチングまちこ


てか、正規表現でも使うの?マッチングって事は。

555:デフォルトの名無しさん
08/10/17 02:37:01
ブレーク処理とかマッチング処理なんて言葉が出てくるのは業務系のコボラーに多いな。
COBOL使えない若い人でも、周囲の先輩達が使うのでそれが一般的な用語だと思ってる事が多い。

556:デフォルトの名無しさん
08/10/17 10:56:37
ものすごくアフォな質問で申し訳ないんですが教えてください
For〜Next文内で10回ごとにそれぞれ決まった作業を1回だけさせたい場合、

For I = 1 To 1000
「基本作業」
a = Right(I, 2)
If a = 1 Then
「選択作業1」
ElseIf p = 2 Then
「選択作業2」

以下、0まで選択作業計10個

Else
End If
Next I

こんな感じでいいんでしょうか?
今実行環境が無いのでどなたかアドバイスお願いしますorz

557:デフォルトの名無しさん
08/10/17 11:39:21
>>556
あくまで自分ならだが
For I = 1 To 1000
 '「基本作業」
 a = I Mod 10
 Select Case a
  Case 1
  '「選択作業1」
  Case 2, 3
  '「選択作業2」
 End Select
Next I

といった感じにする

558:デフォルトの名無しさん
08/10/17 11:44:28
>>557
ありがとう
家に帰ったらいろいろ試してみます

559:デフォルトの名無しさん
08/10/17 17:54:59
セルの値が1のときセルの色づけ赤,2のときセルの色づけ青
とするマクロをVBAで組んだのですが,一回実行した後,
セルの値を1から2を変更しても,実行ボタンをあらためて
押さないと色が青に変わりません。
2を入力すれば直ちにセルの色づけが青に変わるようにする
ためにはどのようなコードを入れればよいのでしょうか。
よろしくお願いします。

560:デフォルトの名無しさん
08/10/17 18:27:43
>>559
ボタン押したら色が変わるようにしたんだろ?
だったら当然だな

入力してすぐに変えたければ
1.ボタンはやめてワークシートのChangeイベントで動かす
2.VBAをやめて条件付書式にする
どちらかだな

ところでテンプレ>>1の★5読んだか?

561:デフォルトの名無しさん
08/10/17 19:06:41
>>560
ありがとうございます。
まったくの初心者です。場所を間違えたようです。
失礼しました。

562:547
08/10/17 20:36:21
> ★ If DateDiff("d", 「現在のセルの日付」+右隣のセルの値(年数), Date) < 0 Then

なんですが、
dateaddをして、比較したいのですが、

If Dateadd("y", target.offset(0,1).value, target.value) < Date Then
と、やってみてもダメでした、

Private Sub Worksheet_Change
If Target.Column = 1 Then

に、おいて、特定セルと特定セルの右隣を関数に入れて比較する方法は、
上記であっているのでしょうか?

563:デフォルトの名無しさん
08/10/17 21:38:26
>>562
ダメだった時はどうダメだったのかを書こうぜ

> 特定セルと特定セルの右隣を関数に入れて比較
そこは合ってる
で、右隣のセルに入ってるのは日数じゃなく年数でしょ?
後はもっぺんヘルプ読んで

564:デフォルトの名無しさん
08/10/18 01:46:12
>>559
条件付書式だかそんな感じの奴でマクロなしでできる

565:547
08/10/18 04:21:40
>>563
もう一度考えてみました。

やりたいことと、セルの値
購入日   保証年数
2006/10/05  2 ←保証切れ(青色になって欲しい)
2004/08/12  5 ←保証が切れていない(色は黒色に)

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Column = 1 Then
If DateAdd("d", Target.Cells.Offset(0, 1).Value * 365, Date) < Date Then
  ' 今日の日付に、Target.Cellsの右に入っている年数×365日を足して、今日の日付と比較

Target.EntireRow.Font.ColorIndex = 5 '青
Else
Target.EntireRow.Font.ColorIndex = 0 '黒
End If

End If
End Sub

日付を入れると「全部青になってしまいます」
ちなみに
If DateAdd("y", Target.Cells.Offset(0, 1).Value, Date) > Date Then
と年数バージョンでもやってみましたが、同じ結果orzでした。

全然わかりません、足して日付が今日より前なら「保証切れ=青色」にしたいのですが・・。
日付と日付を比較できていないのでしょうか?単位が違う状態で比較しているのでしょうか?

566:デフォルトの名無しさん
08/10/18 05:47:32
>>565
おいおいw、悩み過ぎてわけわかんなくなったのか?ガンガレ
今日の日付に足したら、何足したって未来になるだろw

>>562のでほぼ合ってるんだよ
オレのヘルプには "y" じゃなくて "yyyy" ってのがあるんだが、
おまいのにはないのか?

567:565
08/10/18 06:29:37
ありがとうございます。
yyyyでしたか・・・、さっそく書き換えるといけました!感動しました。
たしかにadddateで今ヘルプを見ると、

設定値 内容
yyyy yyyy
y 年間通算日

yyyy・・・内容書いていませんwww (by Office 2003)
でもyは、その年から何日後という意味なんですね、こんなの思いもよらなかったです。


しかし、大問題が発生しました。
xlsファイルを「開いたときに今日の日付を比較しないといけない」ので、
worksheet_changeじゃだめなんです。

workbookが開いたとき、な方法があればいいのですが、
worksheet_activate、selectionchangeでも反応しませんでした。

Private Sub Worksheet_Change(ByVal Target As Range)
ここをどのように書き換えれば、読み込み時に再判定してくれるのでしょうか?

568:565
08/10/18 06:53:58
何度もすいません、
たぶん、worksheet_activateイベントで良いと思うのですが、

activateになった時に計算させるということは、
自動的に

Private Sub Worksheet_Activate(ByVal Target As Range)

If Target.Column = 1 Then
If DateAdd("yyyy", Target.Cells.Offset(0, 1).Value, Target.Cells.Value) < Date Then
Target.EntireRow.Font.ColorIndex = 5 '青
Else
Target.EntireRow.Font.ColorIndex = 0 '黒
End If
End If
End Sub

Private Sub部分を変えただけだと
違うシートを選んで、選択し直すと

「コンパイルエラー プロシージャの宣言がイベントまたはプロシージャの宣言と一致していません」
と出ますが、すでに上の言葉が理解できません。
if文以下も変更しなければならないのでしょうか?

byヘルプ
プロシージャの名前はイベントと同じ名前ですが、パラメータの数と型が一致しません。
イベント プロシージャに新しくパラメータを追加したときなどに、このエラーが発生します。
たとえば、フォームの Form_Load イベント プロシージャを次のように変更すると、このエラーが発生します。

ダメです、わけわかりませんorz

569:デフォルトの名無しさん
08/10/18 08:23:40
>>567-568
> yyyy yyyy
ちょwマジでw
おちおち「ヘルプ読め」とも言えんじゃないか
まあそっちは解決したようで良かった

イベント変更の方だが、worksheet_activateは引数を取らないから、
そうなるのは当然だな
引数を消して、targetを自前で指定してやればOK

つか、workbook_openイベントもあるんだが
つか、今さらだけど、
色変えたいだけなら条件付き書式でもできるがw

570:デフォルトの名無しさん
08/10/19 02:32:28
VBAにEffective C++やEffective Javaみたいなガイドラインってある?

571:568
08/10/19 02:58:41
>>569
>色変えたいだけなら条件付き書式でもできるがw

こ、こんなのあったんですか・・。
春先ぐらいから悩んでいたのが、一撃で吹っ飛びました。

わざわざVBAを使う必要無かったんだ・・・。
___________
   ||     
   ||     ⊂⊃
   ||    ∧ ∧
   ||    (  ⌒ ヽ でも勉強にナターヨ・・・
 ∧||∧   ∪  ノ
(  ⌒ ヽ 彡  V
 ∪  ノ  フワーリ
  ∪∪

572:デフォルトの名無しさん
08/10/19 03:29:41
ほんとに色変えるだけなのかよwまいったw

>>559もそうだし、こういう奴、実は多いのか?
何という時間の無駄

573:デフォルトの名無しさん
08/10/19 07:09:25
悪いけど笑わせてもらう


  ァ   ∧_∧ ァ,、
 ,、'` 。゚( ゚^∀^゚)゚。,、'`
  '`   ( ⊃ ⊂)  '`




574:デフォルトの名無しさん
08/10/19 07:12:51
関数でできることをマクロでやろうとしたり、案外よくあるよな

575:デフォルトの名無しさん
08/10/19 12:16:55
だんだんとワークシート関数がウザくなってくるんだよなw


576:デフォルトの名無しさん
08/10/19 17:15:03
暇だから何か問題だしやが……出して下さい

577:デフォルトの名無しさん
08/10/19 20:25:44
>576
Excel総合相談所74で質問が出てますよ。(レス番号325です)

578:デフォルトの名無しさん
08/10/19 20:49:32
プログラミング初心者かつエクセルにも詳しくない奴が、
この手ので延々悩むんよね
心理的ハードルを超えさせる書式の魔力おそるべし

579:デフォルトの名無しさん
08/10/19 21:31:47
>>576
4色問題お願いします。

580:デフォルトの名無しさん
08/10/19 22:29:21
>>577
ありがと
解決済みだった

>>579
全ての図形が4色で塗り分けられるとかなんとかだよね
図形の形とか定義あるのかな?

セルに色塗るなら二色で出来ちゃうし

581:デフォルトの名無しさん
08/10/19 22:33:43
二次元配列に書き出したセル範囲のデータををリストないしはコンボボックスに
格納したいんですが、ワークシートに書き出さずに直接入れる方法はありますでしょうか?

582:デフォルトの名無しさん
08/10/19 22:43:16
>>581
あります

入力規則のリストなら、マクロの記録録ればわかります
コントロールオブジェクトのコンボボックスの方はVBAヘルプに載ってます
但しフォームツールのコンボボックスなら多分セル書き出し必須

583:581
08/10/19 22:50:06
>>582
すみませんコントロールツールボックスの方です
シートに書き出せばRowSourceプロパティで簡単なのは存じてますが…


584:デフォルトの名無しさん
08/10/19 22:51:02
>>580
4色問題ってこんな感じのです。
URLリンク(yougo.ascii.jp)

585:デフォルトの名無しさん
08/10/19 22:59:02
>>584
ありがとう

1.A1からランダムにIDつけて、同ID隣り合わせを領域と見なす

2.領域ごとに、隣り合わせ同色にならないように色IDを付ける

3.色IDが1から4で収まっているか判定


っていうアプローチでよいかなあ
アルゴリズムの問題っぽいがw

586:デフォルトの名無しさん
08/10/19 23:36:57
セルに依存しない計算は速いのですが結果をセルに
出力するのに時間がかかります。たとえば

Dim X(10000, 10) As Double
Dim I As Integer
Dim J As Integer

'計算
For I = 1 To 10000
For J = 1 To 10
X(I, J) = Sqr(I) * Sqr(J)
Next J
Next I

' 出力
For I = 1 To 10000
For J = 1 To 10
Cells(I, J) = X(I, J)
Next J
Next I

で出力の所要時間を計算時間と同程度にすることができるような
出力の書き方があれば教えてください。


587:デフォルトの名無しさん
08/10/19 23:51:32
For I = 1 To 10000
For J = 1 To 10
Cells(I, J) = Sqr(I) * Sqr(J)
Next J
Next I

588:デフォルトの名無しさん
08/10/19 23:51:40
ちらつき抑制でよいかな?

forの前に

Application.ScreenUpdating = False

を入れると、シートの描画しないから早くなる
少しずつ描画見たいなら、例えばNextの間に
Application.ScreenUpdating = Tlue
Application.ScreenUpdating = False
を追加すると、Iが一つ進むごとに描画される

例えばIが100ごとに実行したいなら

J Mod 100 使ったりできる

589:デフォルトの名無しさん
08/10/19 23:54:01
つーか、配列を0始まりではなく1始まりにしてそのまま書き出したらいいやん

590:デフォルトの名無しさん
08/10/20 00:20:55
>588
21秒から13秒に8秒も短縮できました。ありがとうございます。

>589
具体的に「そのまま書き出す」ってどうすればいいんですか?
よろしくお願いします。


591:デフォルトの名無しさん
08/10/20 00:29:07
>>590
>>589じゃないけど、
range(cells(1,1),(cells(10000,10)) = X

592:591
08/10/20 00:30:17
タイプミス
range(cells(1,1),cells(10000,10)) = X

593:デフォルトの名無しさん
08/10/20 00:36:38
base 1 にするのはお勧めできない。
変数に+1しる。


594:デフォルトの名無しさん
08/10/20 00:41:35
592>>

やってみました。1秒かからないんですね!ありがとうございました。


595:デフォルトの名無しさん
08/10/20 00:42:22
base 1 にするのはお勧めできないが
変数に+1するのもお勧めできない
X(1 To 10000,1 To 10)にしる

596:デフォルトの名無しさん
08/10/20 00:49:07
すみません
Range(Cells(1, 1), Cells(1000, 10)) = X(1 To 10000,1 To 10)
とするとコンパイルエラーがでるんですが・・・。

597:デフォルトの名無しさん
08/10/20 00:52:29
>>596
違う違うw
1 to 10000 とかを書くのは dim のとこ

598:デフォルトの名無しさん
08/10/20 00:56:26

Dim X(1 To 10000, 1 To 10) As Double
でしたね。失礼しました。
みなさんどうもありがとうございました。

599:デフォルトの名無しさん
08/10/20 02:02:50
EXCEL XP, 2000, 2003, 2007において、
VBAはクアッドコアに対応しているの?

コア4つのVBAはやはり処理が早いんだろうか・・。

600:デフォルトの名無しさん
08/10/20 04:35:01
>>582
余談だけどフォームの方もできる

601:デフォルトの名無しさん
08/10/20 06:43:22
すみません
文字列の入ったセルをselectした際に、単にselectにするだけではなく、
編集中の状態にまでもっていきたいのですが、
そのような方法を御存じないでしょうか。
select後、sendkeys"{F2}"で実現できるのですが、
Sendkeysを使用しない方法を探しています。どうか宜しくお願いします。

602:デフォルトの名無しさん
08/10/20 08:24:46
数式バーで編集じゃだめなの?

603:デフォルトの名無しさん
08/10/20 13:42:57
Excel2003でSheet1のセルA1に日付を入れる(08/10/01)とSheet2以降のセルA1に次の日付になるように反映させるにはどうしたらいいですか?

604:デフォルトの名無しさん
08/10/20 13:52:14
>>603
Sheet2以降のセルA1に、「=Sheet1!A1」と入力。

605:デフォルトの名無しさん
08/10/20 13:54:49
+1忘れた

606:デフォルトの名無しさん
08/10/20 14:05:48
>>604
d

607:デフォルトの名無しさん
08/10/20 16:56:04
どこがVBAやねん

608:デフォルトの名無しさん
08/10/20 18:13:53
春から悩んでたかも知れないじゃないか

609:デフォルトの名無しさん
08/10/20 20:11:15
>>599
まず、複数スレッドを作ることが実質的に無理だ。
Excel自体も、2007から再計算を複数スレッドで行えるようになったくらい。

610:デフォルトの名無しさん
08/10/20 20:17:31
依存関係ありまくりの計算だからなあ。

611:デフォルトの名無しさん
08/10/21 15:00:07
オートフィルターがオンになっているシートの選択行について、ソートと処理を
行った後、再度元の並びに戻す方法を模索中です。

1)選択行範囲の最後(列n)に式["=ROW()"]を設定
2)列nの式を値に変更(コピぺ)
*ソートと処理を行う
4)列nで昇順にソートした後、列nを削除

この方法だと選択範囲内に不可視のデータが存在すると、[2)]でコピーと貼付け
の領域が違うため貼付けエラーになります。

1行ずつ行番号をセットする方法は件数が多いと時間が掛かる為オートフィルター
情報を取得しておき、一旦オートフィルターオフにしてからコピペしています。
他にもっと良い方法をご存知でしたら御教授願います。

選択データを他ワークシートにコピーして処理する方法が一番良い気もしますが
データ量が三万件とかだとコピーにも多少時間が掛かるので...

612:デフォルトの名無しさん
08/10/21 17:29:28
>>611
仮に、"=row()" を入れた範囲を range("G5:G10") として、
G列を非表示にして、
range("G5:G10").value = range("G5:G10").value
ってのはダメ?

613:611
08/10/21 18:27:03
>>612
助かりました、有難うございます。orz

だけど、非表示だと何故上手くいくのでしょう?

614:デフォルトの名無しさん
08/10/21 18:33:32
どこがVBAの問題なのか春先まで悩みそうだ

615:デフォルトの名無しさん
08/10/21 19:41:59
>>613
わからん。なんかやってみたらできた
仕様なのかバグなのかも知らんw

616:デフォルトの名無しさん
08/10/21 21:01:59
非表示だと pastespecial もうまくいくな
どうやら仕様くさい

617:VBAの初心者
08/10/21 21:24:20
初めまして。自分は知り合いにVBAを教えて貰っているんですが、相手に人はPCが
無くよく分らなくてもし良かったら教えて下さい。

だだ走らせるだけの凄い簡単なプログラムらしいんですが私には走らせ方が分らな
くて困ってます。

10 for m=1 to12
20 print m
30 next m
40 stop
なんですが凄い初心者なのでエクセル開いた所から分らなくて教えて下さい。


618:デフォルトの名無しさん
08/10/21 21:27:30
それはVBAじゃない。VBでもない太古のBASICのプログラム。

619:VBAの初心者
08/10/21 21:30:01
らしいです。VBAを覚えたいなぁ〜って言ったら色々言われて私が全然分からなく
なってしまったので、まず見れる簡単なの教えてと頼んだんですが、今のじゃ無理
なんでしょうか;

620:デフォルトの名無しさん
08/10/21 21:50:26
もしかしたら、その相手の人は(Excel) VBAを知らないという可能性も考えられる。

VBAも含めてナントカBasicってのは山ほどあるけど、どれも全く別物。
敢えて共通点をあげるとしたら名前にBasicが付いていることだけ、というのはさすがに言い過ぎだけど。

そして、お前は何をやりたいのか。Excel VBAで間違いないんだよな?

621:デフォルトの名無しさん
08/10/21 22:39:24
釣られすぎ

622:デフォルトの名無しさん
08/10/21 23:24:21
縦読みじゃないのね。

623:デフォルトの名無しさん
08/10/22 07:27:31
Interiorってクラス名としてはどうなんですか?

624:デフォルトの名無しさん
08/10/22 10:00:18
激しく紛らわしいからやめた方が良いかと

625:デフォルトの名無しさん
08/10/23 00:27:13
自作クラスのインスタンス380個ぐらい作ったらメモリ不足になった

626:デフォルトの名無しさん
08/10/23 19:16:21
そりゃクラスの内容に因るだろうな
個数や上限決めておらず、必要に応じて作る場合とか
1万や2万は当たり前に使ってることあるが
ちゃんと配慮してれば全然問題ない

627:デフォルトの名無しさん
08/10/24 11:20:18
選択アドレスから重複を削除する方法はありますでしょうか?

例えば、選択したアドレスが[$A$2:$A$5,$A$5:$A$10]の場合、そのアドレス
範囲で集計(Subtotal)するとA5が重複して集計されてしまいます。

Excelのステータスバー(右側)には重複を除いた合計値が表示されます。
これと同様の値(特定の1列のみ)をVBAで取得したいのです。


628:デフォルトの名無しさん
08/10/24 12:06:03
>>627
unionしちゃばOK

629:デフォルトの名無しさん
08/10/24 12:09:11
>>627
Sub test1()
 Dim rg1 As Range, rg2 As Range
 For Each rg1 In Selection.Areas
  If rg2 Is Nothing Then
   Set rg2 = rg1
  Else
   Set rg2 = Range(rg2, rg1)
  End If
 Next rg1
 Debug.Print WorksheetFunction.Sum(rg2)
End Sub

>>628
Unionは無理じゃない?

630:629
08/10/24 12:20:32
今テストしてたんだが離れたセルを選択した時に期待どおりの動きしないな・・・

631:デフォルトの名無しさん
08/10/24 12:22:27
>>629
? range("$A$2:$A$5,$A$5:$A$10").cells.count
10
? union(range("$A$2:$A$5"),range("$A$5:$A$10")).cells.count
9
? union(range("$A$2:$A$5"),range("$A$5:$A$10")).address
$A$2:$A$10

「特定の1列のみ」だそうだからOKかなと

632:629
08/10/24 12:29:12
RangeをUnionに書き換えたらいけたような気がするw

633:デフォルトの名無しさん
08/10/24 14:52:48
有難うございます。
Set rg2 = Union(rg2, rg1)
に変更したら上手くいきました。

もう1つ教えて下さい。
選択された範囲の行を対象に特定の列(例では8列目)を以下の様に集計して
いますが、選択範囲から集計範囲(特定列)への変換にもっと簡単なやり方が
ありますでしょうか?

Dim vals As Variant, i As Integer, c As Integer, addr As String
c = 8
vals = Split(Selection.Address, ",")
For i = 0 To UBound(vals)
With Range(vals(i))
vals(i) = Range(Cells(.Row, c), Cells(.Row + .Rows.Count - 1, c)).Address
End With
Next
addr = Join(vals, ",")
Debug.Print WorksheetFunction.Subtotal(9, Range(addr))


634:633
08/10/24 16:24:56
列の特定と同時に重複を削除しないと駄目のようです。
>>629さんの方法に組み込むと良い様に思います。

Set r1 = Cells(rg1.Row, 8)
Set r2 = Cells(rg1.Row + rg1.Rows.Count - 1, 8)
If rg2 Is Nothing Then
Set rg2 = Range(r1, r2)
Else
Set rg2 = Union(rg2, Range(r1, r2))
End If


635:デフォルトの名無しさん
08/10/24 16:33:53
質問です。
エクセルで資料を作ったがMacroで両面コピーの方法が分からないので両面コピーの方法を教えて下さい。

636:デフォルトの名無しさん
08/10/24 19:46:01
質問です
訳あって欧文(ウムラウトを含むラテン文字の文章)の書き込まれたExcelシートから
内容を読み出してテキストファイルに起こしたいのですが、
Cells(?,?).valueやCells(?,?).TextからStringsの変数に読み出した時点でウムラウトが飛んで
近しい形状の通常のアルファベットに置き換えられてしまうようです。

結構ぐぐって見たのですが、読み出せなくて困った的な話はいくつか見つけたのですが
対処法について言及しているページが無かったので、皆さんのお知恵をお借りできないかと
思って書き込みさせていただきました。
なにかお知恵などありましたらよろしくお願いいたします<(__)>

637:デフォルトの名無しさん
08/10/24 20:14:02
>>635
何を何処へコピーするのか

638:デフォルトの名無しさん
08/10/24 20:26:20
両面コピーって両面印刷の事?プリンタの話になるんじゃないの?

639:デフォルトの名無しさん
08/10/24 20:33:08
>636
元となるExcelファイルは、Excelのどのバージョンで作られたものですか?
あるいは、どこの国用のExcelで作られたものでしょうか?
VBAを利用せず、直接シートの必要な範囲をコピーしてエディタへ(ウムラウトは消えずに)
ペーストすることはできたのでしょうか?

↓このサイトは見ましたか?
URLリンク(www.microsoft.com)
Office XP リソース キット / 国際環境での導入計画 / 国際環境でのメンテナンス
Unicode サポートの活用
「多国語テキストのコピー」の項と、「VBA で Unicode 値を使用する」の項が参考になるかも。

640:デフォルトの名無しさん
08/10/24 21:48:44
あるサブルーチンをForループで回すと100回くらいなら一瞬で終わるんですが、
500回とかそれ以上になるとなぜか無限ループにでも入ったみたいに計算が終わってくれません。
オーバーフローのエラーメッセージが出ることもないし、実際オーバーフローするほど大きな数を扱っているわけでもない。
原因としてはどんなことが考えられるでしょうか?


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

4848日前に更新/261 KB
担当:undef