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


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

Excel VBA質問スレ Part10



1 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 04:56:43 ]
ExcelのVBAに関する質問スレです

前スレ pc11.2ch.net/test/read.cgi/tech/1228372971/

★1 質問テンプレ(雛形)は用意しませんが、OSとExcelのバージョンは必ず書きましょう。

★2 ExcelのVBA以外の部分に関する質問はNGです。
   但し、VBA無しでも出来ることだが、あえてVBAでやりたいって物に関してはOK。

★3 ExcelのVBE(Visual Basic Editor)を使うとしても、VBAの分野以外に関してはスレ違いです。

 VBAとは、『Visual Basic for Application』の略で
  Application
  ├Workbooks
  |└Workbook
  |  ├Worksheets
  |  |└Worksheet
 というApplication以下のオブジェクトを、VB言語で操作するものを指します。
 例えExcel付属のVBE(Visual Basic Editor)を利用しようとも、このApplication以下のブックやシート、
 セルやオブジェクト等を操作するもの以外はVBA分野の話ではないので、ここでは聞かないでください。

★4 とりあえず、Excelのインスタンスを作らずにVB6で出来ることは全てスレ違いだと思ってください。

★5 レベルはどうあれ、ここはプログラマ用の板スレです。プログラマとは、自分でプログラムを組み
   コードを書く人の事なので、自分でやるきは全く無く、丸投げしようって人はお断りです。
   ヒントを貰えばあとは自力でなんとかしますって人のみどうぞ。

★6 わからなければとりあえず「マクロの記録」(Alt, T, M, R)

548 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 15:16:03 ]
セルの値を二元配列に組み込みたいのですが、
簡単にする方法はありますか?
data(0, 0) = A1.value
data(0, 1) = A2.value
data(1, 0) = B1.value
data(1, 1) = B2.value
data(1, 2) = B3.value
のように一度に格納したいのです

549 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 15:21:55 ]
>>547
出来ない理由でも?

550 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 16:05:28 ]
>>548

Dim ary As Variant

ary = Range(Cells(1, 1), Cells(3, 3)).Value

これで配列に入る。
添え字は1始まり。

551 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 16:11:28 ]
>>550
ありがとうございます

552 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 17:01:28 ]
>>549
拾ってきたソースで非表示シートに値を入れてるのがあって
それを目で追うために見えるようにしたかったんだよ

553 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 17:11:41 ]
表示できない場合、うっかり非表示にしちゃったときどうするんだ

554 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 17:16:02 ]
>>545
保守的には書いたほうが良い。書くべき。
けど、VB6に限れば書かない方が速度が速い。もしかしたらVBAも・・・?
まあ、所詮Excelなんで筋違いか。2008は知らん。

555 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 17:26:50 ]
どこぞのサイトに書く場合と書かない場合の計測結果があったな

556 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 18:06:51 ]
書いた方がわずかに早いけど、そこまでスピードにこだわる処理にVBAは向いてない気が



557 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 19:43:34 ]
質問です。
Variantに複数のRangeを代入した際の動きって
どこかにドキュメントとかありますか?
いまいちアレが配列になる理由がわからない。

558 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 19:57:49 ]
>>557
どゆこと?

559 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 20:06:05 ]
それは代入以前の問題だろ

君は複数範囲のRangeオブジェクトのValueプロパティが、配列を返すってことを理解してないだけじゃん。
変数は単にValueプロパティが返した値をそのまま保持しているだけで、Variant型変数に代入したときに
何か変換とかが行われてるわけじゃないし。

560 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 20:09:38 ]
>>557
variantでメモリを確保します
最低16バイトです
そこに配列の値を入れていきます。増えたらVariantが確保してるメモリ量も増大します
終わり

多分可変長ってところでひっかかてるんじゃないかな

561 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 20:51:12 ]
>>558,560
複数のRangeといったのは、下記のような代入です。
Dim var as Variant
var = [A1:B3]

なんでvarに配列が入るのか不思議だったので聞きました。
(普通に先頭要素の値が文字列として入ると思っていたから)

>>559
うーん、そういうExcelのCOMの作り方であって、
別にVBA的な何かというわけではないのですね。

デフォルトプロパティの動作についてドキュメントないのかな。
CVarでも動作同じなのかな。

562 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 20:53:46 ]
つまり勘違いしてただけか

563 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 21:32:03 ]
Range型に不用意にVariantを使用しない。後で意味が分からなくなる。
デフォルト云々の前に、Variantは不定形型ということを理解すべき。

564 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 21:38:54 ]
range == stringの認識も改めたほうがよさそだね

565 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 22:45:48 ]
>>563
なにいってんの?ばか?

566 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 22:46:10 ]
>>564
を見てふと思ったんだけど、
やっぱり比較演算子と代入演算子が同じってのは分かりにくいよね。

>>563
ユーザー定義関数なんかで、セル指定or文字 を引数で使うみたいに、
明確にvariantじゃなきゃ条件分岐がしっかり出来ないって用途は限定されるしね。
まぁ、そんな目的だとしてもTypenameあたりでしっかりと何型が入ったかを判定させるべきだと思う。
入れっぱなし、とりあえず問題なく動くからOK。って作り方はわしゃ好まん。



567 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 23:10:16 ]
VBAでカレーライスって作れますか?

568 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 23:12:10 ]
>>567
外部マイコンをVBAで制御すればできる
もちろん、マイコンでカレーライスが作れるように設定しておいてくれ

569 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 00:27:07 ]
だがそれは、はたしてVBAで作ったことになるのだろうか?

570 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 00:41:36 ]
『パソコンはC言語で動いてる』の考え方次第じゃない?
目に見える結果にプログラミング言語は限定されないと思う
しいて言うなら、カレーライス製造装置の制御ソフトの大半がVBAなら、VBAで出来てるといえるのでは?
最悪、かーちゃんにメールするだけでも成立しそうだが

激しくスレチ乙

571 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 00:44:00 ]
なるよ

572 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 01:05:33 ]
「パソコンで年賀状作った」
「それはプリンタに作らせただけだろう」
みたいな話か

573 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 06:53:16 ]
最後にちょっと国内で加工すれば国産になるのと同じ道理ですな

574 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 21:04:10 ]
>>563は何か勘違いしてるの?
セルの値の配列をいっぺんに入れるならVariant型しかないじゃん。


575 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 21:38:27 ]
Range.Value()の代入先がVariant()型に限るってのもVBAの妙な仕様の一つだよな。
別にDouble()やString()を許容してくれてもよさそうに思えるのに。

576 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 22:02:15 ]
プロパティの定義が
Value As Variant
なんだから、妙でもなんでもなく当然だろ?

というか、配列じゃないときに変換関数も通さず別型の変数に代入できてしまう方が妙だ。
自動型変換なんてのは行われないのが普通だからね。

VB6以前やVBAにどっぷりハマっていると、自動型変換されるのが当然で、プロパティの戻り値を
プロパティの型とは別型の変数に代入できないという当たり前のことが不自然に感じてしまうものなのか?



577 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 22:22:28 ]
ならばセルに数値が入ってる時TypeName(Range("A1").Value)ってやると
Doubleが返ってくるのをやめてほしい。
Range("A1").ValueTypeみたいなデータ型を調べるプロパティを用意すべき。

578 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 22:39:47 ]
>>577
オブジェクト指向を一から勉強し直せ

579 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 22:40:13 ]
>>577
それはTypeNameが内部型を返すという仕様通りの結果だろ?
結局全てに置いて理解が浅いだけの話じゃん。
そして問題点を指摘しているのではなく、「俺の妄想通りに動かない」とブー垂れてるだけ。
ホント、どうしようもないな。

580 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 22:53:11 ]
じゃあ問題なのは一部の演算子で自動的に型変換が行われてしまうってこと?
VBAだと暗黙の型変換を禁止する方法ってないよね?

581 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 22:55:04 ]
>>580
何いってんの?馬鹿なの?

582 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 23:11:21 ]
>>580
それ、結構重要だと思うわ
最近のスクリプト言語でも思う
勝手に型変換して書いたソースをなんとか動く形に解釈してしまうのは
俺もダメだわ

583 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 23:20:39 ]
単純な変数への代入だと勝手に型変換してくれるのに
配列への代入だと型変換してくれない。
なんで統一してくれないの?

584 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 23:22:08 ]
VBAは中途半端に型があるからなぁ
VBSみたいに、もう型なんてバリアント以外禁止!にすればよかったんだよ

実行環境が勝手に型変換するのは、勝手に型変換するコードを書くからなんだがな
それは問題なんじゃなくて、そういう言語だと理解して使うしかない


585 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 23:25:23 ]
>>577
それって意味あるの?
ValueTypeプロパティがあったとして、
VarType/TypeNameが廃止なら、現状のVarType/TypeNameと何も変わりない。
見た目が変わるだけ。

一方、VarType/TypeNameが存在するとしたら、そっちは何をするんだ?
例えば、Variantであるという戻り値なら、そんなものソースコードを見れば自明だ。
ほかの方法は思いつかない。まさかValueTypeと同じとは言わないだろうし。

586 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 23:30:16 ]
「variantの使い方は気をつけよう」でおk?

初心者はよく勉強すること
熟練者は的確なスレをすること
反論だけのキチガイはスルーすること



587 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 23:33:36 ]
スレをする?

588 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 23:40:27 ]
Variantはまだいい方。
一番わかりにくいのはRangeオブジェクトだと思う。
よく使われることを想定したためか、かなりの省略が許容されているおかげで誤解も多い。

589 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 23:46:17 ]
別に解りにくいなんて思ったことは無いけどな
理解度が低かった初心者の頃以外は

590 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 23:59:16 ]
EntireRowとかのRow自体のRangeとか、
結合セル時のOffsetとか、Find・FindNextとかはわかりづらいと思った。

591 名前:デフォルトの名無しさん mailto:sage [2009/04/07(火) 00:10:04 ]
理論的な思考が出来る人なら問題にはならないけどね
結局は個人の問題

592 名前:デフォルトの名無しさん mailto:sage [2009/04/07(火) 00:15:09 ]
んなアホな

593 名前:デフォルトの名無しさん mailto:sage [2009/04/07(火) 00:24:04 ]
まあ出来ないうちはそう思うのは仕方ない
解ってみれば単純な物だが

594 名前:デフォルトの名無しさん mailto:sage [2009/04/07(火) 00:26:06 ]
うゎ、こいつうぜ

595 名前:デフォルトの名無しさん mailto:sage [2009/04/07(火) 00:31:57 ]
ここはヒトの理解というものについて考察するスレじゃないというのは、
論 理 的な思考が出来る人なら問題にはならないけどね。

596 名前:デフォルトの名無しさん mailto:sage [2009/04/07(火) 00:36:17 ]
悔しかったの?



597 名前:デフォルトの名無しさん mailto:sage [2009/04/07(火) 00:39:06 ]
Cellsの使い方がおかしい奴は多いねぇ。
Set r = Range("a1:b5")
r.Cells(2,1).hogehoge
なんてやつ見るとアフォかと。

598 名前:デフォルトの名無しさん mailto:sage [2009/04/07(火) 00:40:46 ]
なにやってんのそれ?w

599 名前:デフォルトの名無しさん mailto:sage [2009/04/07(火) 00:49:29 ]
やってることはどうでもRange("a1:b5") がセルの集合だからCellsを使うのはおかしいってこと。

600 名前:デフォルトの名無しさん mailto:sage [2009/04/07(火) 00:58:52 ]
>>599
ただの相対参照じゃねーの?

601 名前:デフォルトの名無しさん mailto:sage [2009/04/07(火) 01:07:32 ]
>>597
複数セルに対するCellsで第二引数まで指定するのは確かにおかしいが
やってる奴は滅多に見ないぞ

複数セルに対するCellsで第一引数のみの指定や
単一セルに対するCellsで第二引数まで指定するのならよく見るが、これらはちゃんと意味有るし

前者は範囲内、若しくは範囲の延長上で右下方向に何番目のセルという指定で
Range("A1:E5").Cells(12)なら、A1:E5の5行5列範囲で右下方向12番目ということで
1  2  3  4  5
6  7  8  9  10
11 12
のような感じで3行2列目のB3を返す

後者はOffsetの初期インデックス違いのようなもので、Offsetが0始まりなのに対して、Cellsが1始まり
Debug.Print Range("A1").Cells(3, 3).Address(0, 0)
Debug.Print Range("A1").Offset(2, 2).Address(0, 0)

因みに前者のような使い方があるので、「(親が)セルの集合だからCellsを使うのはおかしい」って言い方は不適切だな

602 名前:デフォルトの名無しさん mailto:sage [2009/04/07(火) 01:35:18 ]
問題は、RangeもCellsもRangeオブジェクトを返すのに、その明確な
使い分けができてないことだろ

603 名前:デフォルトの名無しさん mailto:sage [2009/04/07(火) 01:40:10 ]
使ってればそのうち使い分けられるようになるさ。

604 名前:デフォルトの名無しさん mailto:sage [2009/04/07(火) 01:54:34 ]
いや、たしかに自然と使い分けてるんだが、
問題としては、使い分けの方法ってか、指針を説明できないってことなんだ

今だから白状するが、俺は初心者の頃は、Cellsは単一セルそのものを返してると思ってた
まあ、だからRangeとCellsの使い分けはあんまり悩まなかったが、かといって
範囲が1×1のレンジ操作はCells使えってのも、なんかちょっと違う気がする

605 名前:デフォルトの名無しさん mailto:sage [2009/04/07(火) 09:06:00 ]
>>597がおかしいのは
r.Cells(2,1).hogehoge じゃなくて
rItem(2,1).hogehogeとかr(2,1).hogehogeって書けって意味だよ。
r.Cells(2,1).hogehoge ってr.Cells.Item(2,1).hogehoge の意味だけどセルの集合にわざわざ再度Cellsを使うのは無駄ってもんだ。
例えばCells(2,1)もCells.Cells.Cells(2,1)も同じセルををさすが、動けばいいってもんじゃねーからな。
EntireRowとかのセルの集合じゃないものにCellsを使うのは意味があるが>>597ではCellsは無意味だね


606 名前:デフォルトの名無しさん mailto:sage [2009/04/07(火) 09:19:44 ]
r.Cells(2,1).hogehogeがr.Cells.[_Default](2,1).hogehogeの意味だって突っ込みは無しよ。



607 名前:デフォルトの名無しさん mailto:sage [2009/04/07(火) 11:41:21 ]
>>605
デフォルトプロパティを省略するなって議論が上の方にあったな
だが実際問題、Cells.Item(2,1)なんて書かないなぁ
デフォルトプロパティがインデクサとして作用するなら普通みんな書かないんじゃない

まあ、そのせいで、Cells(2,1)はプロパティ取得じゃなくて、
Cellsというメソッドを2と1という引数で呼び出してると勘違いしてる時期があった

VBAの入門書とか、そのへんちゃんと解説してるようなのはほとんどないと思う
ちゃんとしたコード読まないと、ちゃんとしたコードかけるようにならないってことだな

ただ、Range.RangeとかCells.Cellsとかは感覚的におかしいと思うんだが
Range.Cellsは感覚的におかしいと思わないんだよなぁ

608 名前:デフォルトの名無しさん mailto:sage [2009/04/07(火) 13:12:17 ]
>>607
Excel95の頃はCellsはメソッドじゃなかった?
中身は実質変わってないのかな?

609 名前:デフォルトの名無しさん mailto:sage [2009/04/07(火) 15:27:47 ]
ソース見てRangeがオブジェクトかプロパティかわからない俺参上
Range("A1") = "abc"
たとえばこれはオブジェクトでデフォルトプロパティのValueが省略、でいいの?

610 名前:デフォルトの名無しさん mailto:sage [2009/04/07(火) 15:52:48 ]
Rangeはオブジェクトを返すプロパティだよ

611 名前:デフォルトの名無しさん [2009/04/07(火) 17:35:05 ]
EXCEL2003です

セルの書式設定の[表示形式]定義が[文字列]かどうか
判断する方法を教えて下さい。
やりたい事は「日付を表すデータ」([表示形式]が[日付]とは限らない)が
元々どのように入力されているか判断したいのです。
具体的には、
文字列で「3/1」、「2009/3」「2009/3/1」と入力されて
いるのか、日付データで「2009/3」等と入力されているのかの
判断方法は、どうすれば良いかということです。

よろしくお願い致します。






612 名前:デフォルトの名無しさん mailto:sage [2009/04/07(火) 17:40:30 ]
>>611
NumberFormatLocal

613 名前:デフォルトの名無しさん [2009/04/07(火) 22:14:32 ]
文字列で"0.1"とか"1"をDoubleに変換したいです。
且つ、"abc"のようなものなら失敗して欲しいです。
CDbl()でよいと思うのですが、"abc"などを渡した場合どのように失敗を通知してくれるのでしょうか?
例外などですか?このときの例外の補足の仕方を教えていただけますか?
宜しくおねがいします


614 名前:デフォルトの名無しさん mailto:sage [2009/04/07(火) 23:24:36 ]
On Error GoTo xxxx
でエラートラップ
Err.Numberでエラーの種類しらべてしかるべき処理

はっきりいってVBAのエラー処理はおまけみたいなもんだ
変換してエラーでる可能性があるとわかってるなら、
変換する前に変換元が数字かどうかぐらい自分でチェックするほうがいいと思うぞ


615 名前:デフォルトの名無しさん mailto:sage [2009/04/07(火) 23:34:04 ]
>>614
それは他の言語とどこが違うの?

616 名前:デフォルトの名無しさん mailto:sage [2009/04/07(火) 23:41:15 ]
>>614
ありがとうございます。m(_ _)m

アドバイス助かります。自分でエラーチェックすべきか、
オブジェクトの例外スローに期待すべきかも悩んでました。
とりあえず試してみます。
例外が送出され、それを捕らえて上手くメッセージが出せたらそれに越したことはないものですから。。





617 名前:デフォルトの名無しさん mailto:sage [2009/04/08(水) 03:42:55 ]
>>615
エラー処理ルーチンにうつった場合の、それ以降の処理が非常にややこしくなるんだ
まあ、詳しくは構造化エラー処理あたりでぐぐってみてくれ

で、613はJava系のプログラマか?
VBAで例外スロー、キャッチとか考えんほうがいいぞw


618 名前:デフォルトの名無しさん mailto:sage [2009/04/08(水) 03:50:08 ]
つーか、IsNumericじゃダメなの?

619 名前:デフォルトの名無しさん mailto:sage [2009/04/08(水) 06:07:31 ]
IsNumericかregexを使う

620 名前:デフォルトの名無しさん mailto:sage [2009/04/08(水) 10:11:12 ]
vbのエラー処理ってこんなかんじだったかな

1:
on error resume next
(処理)
if err.number = xxx then

end if
on error goto 0

2:
on error goto eh
(処理)
exit sub/function
eh:
(errで分岐したり処理したりする。resume next で戻ることも出来るが、大体はそのままプロシージャを抜ける。)

621 名前:デフォルトの名無しさん mailto:sage [2009/04/08(水) 10:15:33 ]
負の日付を判断する関数ってあります?
もしくは負の日付か判断する方法があったら教えてください

isDate(負の日付)や変数 = 負の日付とかするだけでエラーに飛んでしまって・・・

622 名前:デフォルトの名無しさん mailto:sage [2009/04/08(水) 13:07:38 ]
まず、負の日付の定義についておしえてくれ


623 名前:デフォルトの名無しさん mailto:sage [2009/04/08(水) 13:45:02 ]
1899/12/29以前ってことか?
俺のとこじゃDate型の変数にCdate("1872/8/13")を入れてMsgBox IsDate(変数)とすりゃTrueだけどな。
直にMsgBox IsDate(-10000)だとFalseだが。
エラーにはならんな。

624 名前:デフォルトの名無しさん mailto:sage [2009/04/08(水) 14:07:01 ]
>>622-623
説明不足でもうしわけないです
表示形式が「日付」のセルに、例えば9999999999って値を打つと
####と表示され、マウスカーソルをあてると「負の日付または時間は####と表示されます。」
と出てきまして、そこの値をvbaの方で参照しようとして落ちているという状況です
(日付型のとこには0〜2958465以外の数値だと日付シリアル対象外でこうなるようで・・・)

関数があれば〜と言いましたが、代入するにしろ引数にするにしろ、
参照した時点で落ちてるので関数があっても意味がないと思い、
結局エラーに行かせた先で判断するようにしました

どうもありがとうございました

625 名前:デフォルトの名無しさん mailto:sage [2009/04/08(水) 14:19:05 ]
>>624
Value2プロパティが2958465以下かで判断する方法もあるかもね。
ValueプロパティだとオーバーフローのエラーだがValue2だとオーバーフローしないから。

626 名前:デフォルトの名無しさん mailto:sage [2009/04/08(水) 14:59:38 ]
>>625
知らないプロパティだったんで早速調べてみたんですがこれで行けそうです!
>>625氏の言うとおりの方法で範囲外なら無効な日付とメッセージを出すようにしてみました

出来ればエラーに飛ばしたくないと考えていたので助かりました
どうもありがとうございます!




627 名前:611 [2009/04/08(水) 17:37:10 ]
>612
レスありがとうございます


628 名前:デフォルトの名無しさん [2009/04/09(木) 00:08:50 ]
EXCELファイルがどのバージョン(EXCEL97、2000、2003)で
作成されたものか調べる方法を教えてくれ神ども。

629 名前:デフォルトの名無しさん mailto:sage [2009/04/09(木) 05:48:16 ]
拡張子は?






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

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

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