プロが教える店舗&オフィスのセキュリティ対策術

基礎の質問ですいません。

Dim moji as String
moji = "123"

とあった場合moji変数をInteger型に変えるには
CINT(moji)で合っているのでしょうか?

Cells(CINT(moji))としたらデータ型があっていないと
いうエラーがでました

よろしくお願いいたします

A 回答 (6件)

補足を書きかえるなら、



rows = FR.rows     '検索した名前の行番号取得
int_rows = CInt(rows)
 ↓
Dim fndRow AS Integer
fndRow= FR.Row     '検索した名前の行番号取得
int_rows = CInt(fndRow)  'ほとんど意味がない?

 ※.Rows→.Row
 ※rows を別の変数にしました。

でしょうか。


どうも回りくどいようです。
私なら、次のように書きますが・・・

If Not FR Is Nothing Then
  Sheets(1).Cells(1, 1) = FR.Offset(0, -1)   '検索した名前の左
End If
    • good
    • 0

FR.Rows


ではなく
FR.Row
でできませんか?
    • good
    • 0

#2の補足に対する回答です。



sub test()
  Dim searchWord As String
  searchWord = TextBox1.Text

  With Worksheets("Sheet2").Range("B1:B1000")
    Set FR = .Find(What:=searchWord, LookIn:=xlValues, LookAt:=xlWhole)

    If Not FR Is Nothing Then
      aRows = FR.Row '検索した名前の行番号取得
      Sheets(1).Cells(1, 1).Value = Sheets("Sheet2").Cells(aRows, 1)
    End If
  End With
end sub

でどうでしょうか?間違っていたらすみません。

この回答への補足

CELLSの引数は整数型なのでFR.ROWSの戻り値はSTRING型なので型が一致していませんというエラーが発生してしまいます。
このaRowsを何とかInteger型に変換したいのですが。。。

補足日時:2002/12/11 13:29
    • good
    • 0

●下記でいずれも動きますよ。

テスト済み。
cells(n)はA1より横に数えて、n番目のセルを指す。
256を越えると257はB1になります。
普通この使い方はしませんが。worksheets,workbooksでは
良く使います。
Sub test01()
Dim a As Integer
a = 5
Cells(1) = "aaa"
Cells(3) = 123
Cells(123) = 1234 'DS1
Cells(a) = 111
Cells(257) = "aa"
End Sub
●下記はエラーが出ず動きましたよ。
Sub test02()
Dim moji As String
moji = "3"
a = CInt(moji)
Cells(a) = "ccc"
End Sub
「123」にすると確かめ難いので、「3」にしました。
Dim a As Integerをいれても動きました。
    • good
    • 0

Cellsには範囲をしていしなければいけません。


例えば、Cells(1, 1)のようにです。
質問者さんの形だと、Cells(123)になっていますね。
だからではないでしょうか?

具体的にどのようなことがしたいか教えていただければ、もう少し詳しい回答ができるかもしれません。

この回答への補足

説明不足で失礼致しました。実は今、
textboxで入力した名前を
SHEET2で定義されているデータ一覧から名前を検索しコード値を取得してきてSHEET1のセル(1,1)に表示させるプログラムを作成しています。
sheet2にはコードと名前の列があります。

A B
コード 名前
1 小池
2 田中
3   峰
といった感じで1000件あります。

(例)小池とテキストボックスにうつとセル(1,1)に1と表示させる


そこで
Dim searchWord as String
searchWord = TextBox1.text

With Worksheets("Sheet2").Range("B1:B1000")
Set FR = .Find(What:=searchWord, LookIn:=xlValues, LookAt:=xlWhole)

If Not FR Is Nothing Then
rows = FR.rows     '検索した名前の行番号取得
int_rows = CInt(rows)

Sheets(1).Cells(1,1).Value = Sheets("Sheet2").Cells(int_rows, 1)      'ここでエラーが発生(”データ型が一致していません”)

End If
End With

以上よろしくお願いいたします

補足日時:2002/12/11 12:12
    • good
    • 0

Dim moji As String


Dim a As Integer

moji = "123"
a = moji

これだけでいいです。

この回答への補足

ありがとうございます。上記の方法でやってみたのですが
データ型が一致しませんというエラーが発生いたしました

補足日時:2002/12/11 12:11
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!