C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[1]: アドバイスください


(過去ログ 24 を表示中)

[トピック内 2 記事 (1 - 2 表示)]  << 0 >>

■10692 / inTopicNo.1)  アドバイスください
  
□投稿者/ 猿 (1回)-(2007/11/23(Fri) 22:20:52)

分類:[VB.NET/VB2005] 

Sub a1()

Dim line As Integer, column As Integer
Dim a As Integer, b As Integer
line = 2
For a = 1 To 10
Randomize

column = Int(Rnd * 4) + 1

Sheet1.Cells(line, column) = InputBox(Sheet1.Cells(1, column) & "についてどう思いますか?")

Sheet2.Cells(line, column) = InputBox("なぜ" & Sheet1.Cells(line, column) & " だとおもうのですか?")


Next a

End Sub
Function count_line(column As Integer) As Long

If Worksheets("sheet1").Cells(line, column + 1) = " " Then

End If


End Function

Function input_ans(sheet As Integer, line As Long, column As Integer, input_str As String)


End Function


エクセルシートを簡易データベースとしてコンピュータと会話するプログラムを作成したいのですが、うまくいきません。

シート1,2の1行目(1,1)(1,2)(1,3)(1,4)にはそれぞれトピックとなる異なる名詞を予め入力しておきます。
シート1には、トピックのイメージを。シート2にはその理由をそれぞれ格納したいのです。

ヒントとして
「入力のあるセルが何行あるか調べるには,次の行のセルが空白でないかどうかを調べて行けば良い
If Worksheets("sheet1").Cells(line, column) = "" Then を使う」とあったのですがどのように使えば良いか分かりません。

アドバイスお願いします。

引用返信 編集キー/
■10715 / inTopicNo.2)  Re[1]: アドバイスください
□投稿者/ 魔界の仮面弁士 (531回)-(2007/11/24(Sat) 14:01:49)
No10692 (猿 さん) に返信
> 分類:[VB.NET/VB2005]
これって、本当に VB.NET/VB2005 ですか?
VB6 以下の言語、あるいは Excel VBA だったりはしませんか?

# .NET に見えなくも無いですが、それにしては ByVal/ByRef が省略されたままですし、
# 使い勝手の悪い Rnd 関数などが利用されているようですし…。

勝手な判断の元、VBA の質問と仮定して回答します。

> シート1,2の1行目(1,1)(1,2)(1,3)(1,4)にはそれぞれトピックとなる異なる名詞を予め入力しておきます。
すなわち、4つのトピックが用意されている、という事ですね。

ところで、InputBox からの回答文は、同一のシートに書きこみたいのでしょうか? それとも別シート?
また、書き込み先のセル位置はどこですか? (同一セルを上書き? 別の行に出力?)

> シート1には、トピックのイメージを。シート2にはその理由をそれぞれ格納したいのです。
すみません、最終的にどのような結果を望んでいるのかが、いま一つ掴めませんでした。
回答前/回答後のワークシートの内容がどうなるようにしたいのか、具体例をあげてもらえませんか?


> 「入力のあるセルが何行あるか調べるには,次の行のセルが空白でないかどうかを調べて行けば良い
空白位置であれば、セルを一つ一つ調べていく必要はなく、対象範囲の Range オブジェクトに対して、
End プロパティや SpecialCells メソッドを使うことで調べる事ができるかと。

ただ、「入力のあるセル」というのが質問文の事だとすれば、それは事前に範囲が分かっているので、
どこが空白か調査の必要はないですよね。(たとえば、セル範囲を示す Name オブジェクトを事前定義しておけば済む)

あるいは「入力のあるセル」というのが、ユーザからの回答文を示しているのだとすれば、どこに書き込むかは
プログラム側でその都度分かるので、その都度管理していれば、あえて後から検索しなおす必要もないかと。
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -