Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


2154 / 13645 ツリー ←次へ | 前へ→

【69633】チェックボックスで集計とリストを立ち上げたいのですが。 LALA 11/8/15(月) 0:33 質問[未読]
【69634】Re:チェックボックスで集計とリストを立ち... UO3 11/8/15(月) 7:14 回答[未読]
【69635】Re:チェックボックスで集計とリストを立ち... LALA 11/8/15(月) 11:26 質問[未読]
【69636】Re:チェックボックスで集計とリストを立ち... UO3 11/8/15(月) 14:02 回答[未読]
【69637】Re:チェックボックスで集計とリストを立ち... LALA 11/8/15(月) 14:14 発言[未読]
【69638】Re:チェックボックスで集計とリストを立ち... まろにえ 11/8/16(火) 11:49 発言[未読]
【69639】Re:チェックボックスで集計とリストを立ち... UO3 11/8/16(火) 12:31 発言[未読]
【69640】Re:チェックボックスで集計とリストを立ち... まろにえ 11/8/16(火) 13:27 発言[未読]
【69642】Re:チェックボックスで集計とリストを立ち... UO3 11/8/16(火) 14:12 発言[未読]
【69644】Re:チェックボックスで集計とリストを立ち... LALA 11/8/16(火) 15:10 発言[未読]
【69645】Re:チェックボックスで集計とリストを立ち... こたつねこ 11/8/16(火) 21:18 発言[未読]
【69646】Re:チェックボックスで集計とリストを立ち... ichinose@明日から仕事 11/8/16(火) 22:20 発言[未読]
【69648】Re:チェックボックスで集計とリストを立ち... こたつねこ 11/8/16(火) 22:52 発言[未読]
【69649】Re:チェックボックスで集計とリストを立ち... ichinose 11/8/17(水) 6:17 発言[未読]
【69650】Re:チェックボックスで集計とリストを立ち... まろにえ 11/8/17(水) 7:04 発言[未読]
【69653】Re:チェックボックスで集計とリストを立ち... UO3 11/8/17(水) 11:05 発言[未読]
【69655】Re:チェックボックスで集計とリストを立ち... LALA 11/8/17(水) 18:59 お礼[未読]
【69660】Re:チェックボックスで集計とリストを立ち... ichinose 11/8/18(木) 7:22 発言[未読]

【69633】チェックボックスで集計とリストを立ち上...
質問  LALA  - 11/8/15(月) 0:33 -

引用なし
パスワード
   こんばんは。

はじめまして。

ユーザーフォームから

チェックボックスを作っています。

が、全然わかりません。

If CheckBox1.Value = True Then
      ・
      ・
    End If

このような 感じって言うのはわかるのですが、

中に何を入れたらいいのかわかりません。

お願いします。

教えてください。

ひとつは、Worksheets("Sheet1")のA1:A5に

数字が入っています。

ユーザーフォームでチェックボックスを5つ作って、

チェックされた項目だけ足し算したいです。

もう一つは、

違うユーザーフォームで、5個チェックボックスがあって

チェックされたCSVだけ開きたいです。

Private Sub CommandButton1_Click()

の後、何を 書けばいいのか

どうかどうかおしえてください。

お願いします。

【69634】Re:チェックボックスで集計とリストを立...
回答  UO3  - 11/8/15(月) 7:14 -

引用なし
パスワード
   ▼LALA さん:

おはようございます

とりあえず最初の質問に対して。

基本構造としては

Private Sub CommandButton1_Click()
  Dim tot As Long
  If CheckBox1.Value = True Then
    tot = tot + Worksheets("Sheet1").Range("A1").Value
  End If
  If CheckBox2.Value = True Then
    tot = tot + Worksheets("Sheet1").Range("A2").Value
  End If
  If CheckBox3.Value = True Then
    tot = tot + Worksheets("Sheet1").Range("A3").Value
  End If
  If CheckBox4.Value = True Then
    tot = tot + Worksheets("Sheet1").Range("A4").Value
  End If
  If CheckBox5.Value = True Then
    tot = tot + Worksheets("Sheet1").Range("A5").Value
  End If
  MsgBox "合計は" & tot & "です"
End Sub

でも、これだと同じようなものが連続して記述されて煩雑なので少し工夫して

Private Sub CommandButton1_Click()
  Dim tot As Long
  Dim i As Long
  For i = 1 To 5
    If Me.Controls("CheckBox" & i).Value = True Then tot = tot + Worksheets("Sheet1").Range("A" & i).Value
  Next
  MsgBox "合計は" & tot & "です"
End Sub

2番目の質問も基本的には同じことだけど、それぞれのチェックボックスで扱うデータが
最初の質問ではシートのA1:A5の数字だと説明があるけど2番目の質問にはありませんね。
これも、シートのA1:A5にCSVの名前が入っているのかな?
それともチェックボックスのキャプションにCSVの名前が入っているのかな?
それと、ファイルを開く場合はファイル名のほかに、そのファイルが、どのフォルダに
保存されているかという情報も必要ですね。

【69635】Re:チェックボックスで集計とリストを立...
質問  LALA  - 11/8/15(月) 11:26 -

引用なし
パスワード
   ▼UO3 さん:

おはようございます!

ありがとうございます!

頑張ってみます!

それと

フォルダが置いてある場所は


C:\過去のリスト\1から5.csv


です。

(変な名前ですけど、勘弁です)

これが一枚で

あとは、

6から10.csv

11から15.csv

16から20.csv

21から25.csv

あの、コメントを頂いた中で

ヒントがあるって思ったんですけど、

セルの中に、この名前をもう書いておいた方がいいんでしょうか?

書く場所は、このマクロのbookの

Worksheets("Sheet1")  

(非表示にしてありますが。

それと、足し算の方もここのA1:A5に書いてあります。)

の B1:B5 にしようか 等と考えてます。

変更変更でごめんなさい。

それと

チェックボックスのキャプションにCSVの名前が入っているのかな?

これどういう意味ですか?

あと、もういっこ お願いします。(ぺこっ)

csv じゃなく xls では だめですか?

同じに見えるのですが。

宜しくお願いします!

なんか 元気でてきました!


えっと これって

ありがとう と たくさん言いたいけど、

質問もあるんですけど、

どうすればいいのかなぁ

えっと

種別は 質問ですが、

ありがとうと 言いたいです。

ありがとう!

【69636】Re:チェックボックスで集計とリストを立...
回答  UO3  - 11/8/15(月) 14:02 -

引用なし
パスワード
   ▼LALA さん:

こんにちは。暑いですねぇ。

フォルダが、C:\過去のリスト
ファイル名が
CheckBox1用;1から5.csv
CheckBox2用;6から10.csv
CheckBox3用;11から15.csv
CheckBox4用;16から20.csv
CheckBox5用;21から25.csv
ですね。了解です。

>セルの中に、この名前をもう書いておいた方がいいんでしょうか?

もし、ファイル名が変更になる場合があるとすれば、
・VBAコードを変更する。
・セルの値を変更する。
といった方法になります(もちろん、そのほかのやりかたもありますが)
プログラムは、あまりさわりたくないということから後者で対応するケースが少なくないですね。
Worksheets("Sheet1")の B1:B5 に、これら5つのファイル名があるということにしましょう。

>チェックボックスのキャプションにCSVの名前が入っているのかな?
>↑
>これどういう意味ですか?

チェックボックスの □ の右側 ユーザーフォームにコントロールを追加すると たとえば
CheckBox1 といった文字列が表示されますね。これがキャプションです。
この文字列は任意のものにすることができますので、これをファイル名にしておいて
チェックボックスが選ばれたら、ファイル名を、このキャプションからもってくる方法も
あるということです。でも、B1:B5 からもってくることにしましたから、これは忘れてください。

>csv じゃなく xls では だめですか?

大丈夫ですよ。 B1:B5 の記入を ○○○.csv ではなく □□□.xls にしておけばOKです。
xlsとcsvが混在していてもいいです。

ということで、以下。

まず基本形。

Private Sub CommandButton1_Click()
  If CheckBox1.Value = True Then
    Workbooks.Open "C:\過去のリスト\" & ThisWorkbook.Worksheets("Sheet1").Range("B1").Value
  End If
  If CheckBox2.Value = True Then
    Workbooks.Open "C:\過去のリスト\" & ThisWorkbook.Worksheets("Sheet1").Range("B2").Value
  End If
  If CheckBox3.Value = True Then
    Workbooks.Open "C:\過去のリスト\" & ThisWorkbook.Worksheets("Sheet1").Range("B3").Value
  End If
  If CheckBox4.Value = True Then
    Workbooks.Open "C:\過去のリスト\" & ThisWorkbook.Worksheets("Sheet1").Range("B4").Value
  End If
  If CheckBox5.Value = True Then
    Workbooks.Open "C:\過去のリスト\" & ThisWorkbook.Worksheets("Sheet1").Range("B5").Value
  End If
End Sub


でも、これでは、あまりに煩雑なのでブラッシュアップ。
あわせて、フォルダに本当にそのファイルがあるかどうかのチェックも加えてあります。

Private Sub CommandButton1_Click()
  Dim myPath As String
  Dim fname As Variant
  Dim i As Long
  Dim myName As String
  myPath = "C:\過去のリスト\"
  fname = ThisWorkbook.Worksheets("Sheet1").Range("B1:B5").Value '指定ファイル名配列
  For i = 1 To 5
    If Me.Controls("CheckBox" & i).Value = True Then
      myName = fname(i, 1)
      If Dir(myPath & myName) = "" Then
        MsgBox "以下のファイルがみあたりませんよ" & vbLf & myPath & myName
      Else
        Workbooks.Open myPath & myName
      End If
    End If
  Next
End Sub

【69637】Re:チェックボックスで集計とリストを立...
発言  LALA  - 11/8/15(月) 14:14 -

引用なし
パスワード
   ▼UO3 さん:

はい!

暑いです!

うぉさん!即答ですね!

感謝いたします。

ありがとうございます。

ですが、朝のお答えの格闘中です。

すみません。

待ってもらっていいですか??

おねがいします!

昨日よりやる気が 10倍です!

一つ目出来たら、戻ってきます!

見捨てないでください!

種別は 発言ですが、

ありがとう 言いたいです。

ありがとう!

【69638】Re:チェックボックスで集計とリストを立...
発言  まろにえ  - 11/8/16(火) 11:49 -

引用なし
パスワード
   >  If CheckBox1.Value = True Then

たとえば
If a = 2 Then

If (a = 2) = True Then
と書いているようなものです。

チェックボックスのValueはBooleanですから
改めてTrueとの比較式をつけなくても大丈夫です。

【69639】Re:チェックボックスで集計とリストを立...
発言  UO3  - 11/8/16(火) 12:31 -

引用なし
パスワード
   ▼まろにえ さん:

たぶん、私の

If CheckBox1.Value = True Then

へのご意見だと思いますので。

確かに上記は

If CheckBox1.Value Then

でかまわないわけですが、質問者さんのレベル(失礼)では
アップしたような表記のほうが、何をしているのかの理解が、より得られると思いまして。

ところで、これは私が無知なのでしょうけど

If CheckBox1.Value Then

は、あくまで

If CheckBox1.Value (=True) Then

の ( ) 内が省略されているだけと理解しているんですが。
つまり CheckBox1 の、あくまで Value が何であるかを判定しているという認識です。
で、Boolean型のデータについては
If CheckBox1.Value Then とか
If Not CheckBox1.Value Then といったように書くことができるというだけで

けっして

If CheckBox1.Value = True = Then

という構文の省略形ではないと理解しているんですけど。

【69640】Re:チェックボックスで集計とリストを立...
発言  まろにえ  - 11/8/16(火) 13:27 -

引用なし
パスワード
   ▼UO3 さん:
>If CheckBox1.Value Then
>
>は、あくまで
>
>If CheckBox1.Value (= True) Then
>
>の ( ) 内が省略されているだけと理解しているんですが。

それは違うと思います。

Ifのステートメントの条件式はブール値です。
前者の条件式は、Value   です。
後者の条件式は、Value=True です。
(Valueだけで完結しているのに再評価している。)
つまり後者は一手間多い。

落ち着いて考えると理解できると思います。

【69642】Re:チェックボックスで集計とリストを立...
発言  UO3  - 11/8/16(火) 14:12 -

引用なし
パスワード
   ▼まろにえ さん:

なるほどですね。理解しました!

▼LALAさん

ということで、私のコードの中で
If チェックボックス.Value = True Then と表記しているところは
そのままでも、問題はでませんが、
If チェックボックス.Value Then とするほうが、
「正しい」表記ということです。

【69644】Re:チェックボックスで集計とリストを立...
発言  LALA  - 11/8/16(火) 15:10 -

引用なし
パスワード
   ▼まろにえ さん:

そうなんですね。ですが、今は理解できません!

ですが、絶対に貴重なお言葉であるという事!

この先忘れてはいけないお言葉であるという事!

これは理解できます!

ありがとうございます!!

がんばります!!


▼UO3 さん:

>▼LALAさん
>
>ということで、私のコードの中で
>If チェックボックス.Value = True Then と表記しているところは
>そのままでも、問題はでませんが、
>If チェックボックス.Value Then とするほうが、
>「正しい」表記ということです。


了解しました!

わからないですけど 了解しました!


▼UO3 さん:

ですが、

>質問者さんのレベル(失礼)では



これ 本当のことすぎて 失礼よw

まだかかっています(汗

がんばります!!

お二人に感謝です。

【69645】Re:チェックボックスで集計とリストを立...
発言  こたつねこ  - 11/8/16(火) 21:18 -

引用なし
パスワード
   >たとえば
>If a = 2 Then
>を
>If (a = 2) = True Then
>と書いているようなものです。
あまりに極端なたとえ方だと思います
この例だと可読性を悪くして、かつ一手間多いですよね

VBAでValueプロパティを持つコントロールはチェックボックス
だけでは無いので、
If CheckBox1.Value = True Then
の記述方法は十分にありだと思います。
(仮にこの書き方をしたとして、どの程度実行速度が低下するかも疑問です。)
可読性を考慮しなければ、確かにその通りだと思いますが
プログラムを組む際は可読性も大事だと思います。

【69646】Re:チェックボックスで集計とリストを立...
発言  ichinose@明日から仕事  - 11/8/16(火) 22:20 -

引用なし
パスワード
   こんばんは。

>If CheckBox1.Value = True Then
>の記述方法は十分にありだと思います。
私もこの考え方に近い意見です。
もっともBoolean型に限って
If CheckBox1.Value Then
この記述にしようというローカルルールも良しなんですが・・・。


>(仮にこの書き方をしたとして、どの程度実行速度が低下するかも疑問です。)
私の環境で以下のコードで

Option Explicit
Const lp As Long = 1000000
Sub main1()
  Dim g0 As Long
  For g0 = 1 To 10
    test1
    test2
  Next
End Sub
Sub test1()
  Dim tm As Double
  Dim a As Boolean
  Dim g0 As Long
  Dim cnt As Long
  cnt = 0
  tm = [now()]
  For g0 = 1 To lp
    a = 1
    If a Then
     cnt = cnt + 1
    Else
     cnt = cnt - 1
    End If
  Next
  Debug.Print "test1   " & cnt
  Debug.Print Application.Text([now()] - tm, "hh:mm:ss.00")
End Sub
Sub test2()
  Dim tm As Double
  Dim a As Boolean
  Dim g0 As Long
  Dim cnt As Long
  cnt = 0
  tm = [now()]
  For g0 = 1 To lp
    a = 1 '(Int(Rnd() * 10000) + 1) Mod 2
    If a = True Then
     cnt = cnt + 1
    Else
     cnt = cnt - 1
    End If
  Next
  Debug.Print "test2   " & cnt
  Debug.Print Application.Text([now()] - tm, "hh:mm:ss.00")
End Sub

test1とtest2では、百万回のループで0.02秒〜0.05秒ぐらいtest1の方が
速かったですよ!!

変数aをチェックボックスに置き換えても百万回ループで0.3秒程度の差でした。

インタプリタが
If CheckBox1.Value = True Then

If CheckBox1.Value Then

をどのように解釈しているのか(Pコード自体が本当に1手間よけいな処理に落としている)は、分かりませんが、上記のテスト結果からは、若干ですが差が見られます。

が、コードの分かりやすさという観点から

If CheckBox1.Value = True Then

これを否定することも出来ません。


If 条件文 Then に関しては、実際には、真(True)だったらではなく、
Falseでなかったらという処理をしているので、

以下のコードは、1から百万までの間で4で割り切れない数がいくつあるか数えています。

Option Explicit
Const lp As Long = 1000000
Sub main2()
  Dim g0 As Long
  For g0 = 1 To 10
    test1
    test2
  Next
End Sub
Sub test1()
  Dim tm As Double
  Dim a As Long
  Dim g0 As Long
  Dim cnt As Long
  a = 4
  cnt = 0
  tm = [now()]
  For g0 = 1 To lp
   
    If (g0 Mod a) <> 0 Then
     cnt = cnt + 1
    End If
  Next
  Debug.Print "test1   " & cnt
  Debug.Print Application.Text([now()] - tm, "hh:mm:ss.00")
End Sub
Sub test2()
  Dim tm As Double
  Dim a As Long
  Dim g0 As Long
  Dim cnt As Long
  a = 4
  cnt = 0
  tm = [now()]
  For g0 = 1 To lp
    If g0 Mod a Then
     cnt = cnt + 1
    End If
  Next
  Debug.Print "test2   " & cnt
  Debug.Print Application.Text([now()] - tm, "hh:mm:ss.00")
End Sub


この結果は、0秒から0.03秒ぐらいtest2の方が速いです。


If (g0 Mod a) <> 0 Then

でも、こっちにするだろうなあ・・・。

【69648】Re:チェックボックスで集計とリストを立...
発言  こたつねこ  - 11/8/16(火) 22:52 -

引用なし
パスワード
   ▼ichinose@明日から仕事 さん:
こんばんは

>(仮にこの書き方をしたとして、どの程度実行速度が低下するかも疑問です。)

この発言を検証いただいたのだと思いますが、
言いたかった事は、十分な実行速度が出るのなら可読性を考慮して
If CheckBox1.Value = True Then
の記述方法はありだと思うと言いたかったのです・・・

【69649】Re:チェックボックスで集計とリストを立...
発言  ichinose  - 11/8/17(水) 6:17 -

引用なし
パスワード
   おはようございます。

>>(仮にこの書き方をしたとして、どの程度実行速度が低下するかも疑問です。)
>
>この発言を検証いただいたのだと思いますが、
>言いたかった事は、十分な実行速度が出るのなら可読性を考慮して
>If CheckBox1.Value = True Then


仰りたいことは理解していますし、

>の記述方法はありだと思うと言いたかったのです・・・

これに傾いた意見です。
そのためのコードでした。百万回のループで若干の差しかないなら

>が、コードの分かりやすさという観点から
>If CheckBox1.Value = True Then
>これを否定することも出来ません。

という思いだったのですが・・・。


但し、

If CheckBox1.Value Then とはするべきではない

等という否定ではなく・・・、

Boolean型では

If CheckBox1.Value Then

という記述にする というコーディング規約をローカルに作っておけば、
可読性という観点から見ても両者には差はないか、あっても百万回ループの時間差
程度のことだと思います。

という意見を記述したつもりです。

【69650】Re:チェックボックスで集計とリストを立...
発言  まろにえ  - 11/8/17(水) 7:04 -

引用なし
パスワード
   =Trueを全否定したつもりはないのだが。

=Trueなしでも「大丈夫」とかいただけ。

ただ、「(= True)の省略」という話が出たので、それは違うとはいいましたが。
(一手間増えてることは確かだから。)


ましてや、実行速度に関してはまったく触れてません。
差が出るわけもなく、興味すらなかった。


なんかおかしな方向になってますね (T_T)

【69653】Re:チェックボックスで集計とリストを立...
発言  UO3  - 11/8/17(水) 11:05 -

引用なし
パスワード
   ▼皆さん:

「(= True)の省略」だと勘違いしたところから、お騒がせしています。
きっとLALAさんも、ご自分のトピで、このような奥深いディスカッションが繰り広げられていることに
目を白黒?でしょうか。

言い訳気味ですが、おそらくLALAさんはVBAをはじめて間もないんだと思われますし
これから、VBAの基本構文を習得していかれる段階だろうと。
そうしますと、たとえば
If 変数 = "ABC" Then とか
If 変数 > 100 Then といった構文を扱っていかれる。その過程でBoolean型の変数に関して
If 変数 Then とか If Not 変数 Then というコードがあらわれると、かえって混乱されるのかな?
ということで、If 変数 = True Then を提案しました。

いずれ、LALAさんも熟練の域に達した頃には、いつのまにかBoolean型変数については違和感なく、
If 変数 Then とか If Not 変数 Then というふうに使われているんだろうと思います。

(自分自身で使うコードはIf 変数 Then 、 If Not 変数 Then で書いてます)

皆さん、それぞれ、同じことをアドバイスしてくださっていると思っています。
・If 変数 = True この書き方も、「あり」。とくに初心者にはわかりやすい。
・慣れてくると、「当然」If 変数 Then を使うことになるだろう。
こんなことですね。

【69655】Re:チェックボックスで集計とリストを立...
お礼  LALA  - 11/8/17(水) 18:59 -

引用なし
パスワード
   ▼UO3 さん:
▼皆さん:

うぉさん!!

ありがとうございます!!

出来ました!! 昨日の夜にw!!

ですが、投稿できずにいました!!

変な意味ではないです!!

すごく熱心で

私が忘れていたものが見えたような気がします!!

もちろん エクセルのコードではありません!!

理解はしていませんが

皆様の 気持ちが見えたという事です!!

エクセルではなく きっと その気持ちを持つことが

まず一番なのだと思いました!!

がんばりますが、きっとくじけて また来ます!

うぉさん! ありがとう!

▼UO3 さん:

>目を白黒?でしょうか。

カラーコンタクトは入れてません。

もともと白黒です!

そっか ここはエクセルでしたね!

RGB(0,0,0)とRGB(255,255,255)です!

という事ですね!

ですが 今は255,0,0 でーす!

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

この皆さんのやりとり 大切に します!

ありがとう!

【69660】Re:チェックボックスで集計とリストを立...
発言  ichinose  - 11/8/18(木) 7:22 -

引用なし
パスワード
   おはようございます。

>=Trueを全否定したつもりはないのだが。
>=Trueなしでも「大丈夫」とかいただけ。
この記述で、概ね同じ思いなのかなあ ということはわかりました。


最初のまろにえさんの投稿の

>たとえば
>If a = 2 Then
>を
>If (a = 2) = True Then
>と書いているようなものです。

>チェックボックスのValueはBooleanですから
>改めてTrueとの比較式をつけなくても大丈夫です。

この投稿、それまでのやりとりでここの部分が問題視されていなかったのに
出てきた投稿だったので、

>If (a = 2) = True Then

↑このように記述するべきではない とまで強くはなくても
軽い否定に感じたため こういう記述は分かりやすさという観点からは
軽くでも否定はできない という投稿をしました。


>ただ、「(= True)の省略」という話が出たので、それは違うとはいいましたが。
このやりとりは、仰るとおりですね!!


>(一手間増えてることは確かだから。)


>ましてや、実行速度に関してはまったく触れてません。
>差が出るわけもなく、興味すらなかった。

この一手間という意味さえ、私は、まろにえさんとは解釈が違っていました。

まろにえさんの上記の記述から

一手間増えても、(実行速度に)差が出るわけもなく・・・

ということですよね?

この文章からだと、VBAコードを記述の際、 =True という記述が増えることが
プログラマにとって、記述が増える=一手間 という意味に解釈できますが、違いますか?
そうだとすれば、

>ましてや、実行速度に関してはまったく触れてません。
という記述も 頷けます。


が、私はこの「一手間」という言葉、これをコードの記述の違いから
プログラムが処理する命令が一つ増えるため、 
この一手間がたとえわずかでも実行速度を低下させる

と解釈しました。

よって、実際に試してみよう ということで投稿のようなコードを記述しました。

試行前は、もしかしたら実行速度は変わらないかもしれない
という感が働きました。

ソース段階では処理が増えているように見えても
コンパイル(中間コード作成)段階で
最適化が行われて、一手間が発生しないような中間コードが
作成されているかもしれない。

結果は、わずかながらですが、差が出ました。


以上が誤解の顛末です。


私は、このBoolean型のIF文での使い方、
どちらでも良いかなあ という判断です。
同じプログラム中である時は、=Trueを使い、
違う箇所では、=True を入れない という
一貫性のないのは困りますけどねえ。

仕事では、=True 入れています。


人の文章の解釈って難しいですね!!
数行でさえ、意味の取り方を違えてしまいます。

あらためて、日本語の解釈はむずかしいなあ

2154 / 13645 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free