• ベストアンサー
  • すぐに回答を!

Excel VBAでのセルの範囲指定

  • 質問No.736614
  • 閲覧数215
  • ありがとう数3
  • 気になる数0
  • 回答数3
  • コメント数0
Excel2000
Win2000です。

あるbook「A.xls」にある表「a」を「B.xls」にコピペ&行列反転するマクロを作っています。

A.xlsの表「a」のサイズが作成の都度変わるため、
B.xlsからサイズの取得をする為、


Workbooks.Open Filename:="A.XLS"

I1 = 1 ' 行数の取得
DO WHILE CELLS(I1,1).VALUE <> ""
 I1 = I1 + 1
LOOP

I2 = 1 '列数の取得
DO WHILE CELLS(1,I2).VALUE <> ""
 I2 = I2 + 1
LOOP

として、行と列の数を取得しています。

で、ここまで来てセルの範囲をどうやって指定していいのか分からなくなりました。

例えば、I2の値をExcelの列のアルファベット表記に変える等、
なにかいい方法はありませんか??

質問者が選んだベストアンサー

  • 回答No.1
  • ベストアンサー

ベストアンサー率 22% (559/2488)

う~ん。

列のアルファベットですか…。A~Zなのでchr関数で、数値を文字に変換すれば出来そうですね。

例えば、I2の値が1だったら(Aの値は65)CHR(64+I2)とすれば、”A”の文字が取得できます。
I2の値が26を超える場合は、数値を26で割って上位一桁と下位一桁で別々に文字を作る用にすれば、できるでしょう。

でも、range関数でこういう指定が出来ますが、こっちの方が簡単ですよ。

range(cells(1,1),cells(I1,I2)).・・・

で記述できますよ。
お礼コメント
noname#6434
早速の返事ありがとうございます。

え゛っ!!
RangeってCellsが使えるんですか・・・
てっきりRange("A1:Z1")って言う使い方しかできないと
思っていました・・・

もう一度ヘルプをよく読んでみます。

どうも、ありがとうございました。
投稿日時:2003/12/23 11:10

その他の回答 (全2件)

  • 回答No.3

ベストアンサー率 25% (14/56)

Sub hanten()
For m = 1 To 100
For n = 1 To 100
Sheet2.Cells(n, m) = Sheet1.Cells(m, n)
Next n
Next m
Sheet2.Activate
Cells.Select
Selection.Copy
Dim bookb As Excel.Application
Set bookb = New Excel.Application
bookb.Workbooks.Open ("c:\B.xls")
bookb.Visible = True
bookb.ActiveSheet.Paste
End Sub

見当違いかもしれないですが、・・・
範囲ぐらいは自分で考えてください。
もう少し手間かかります、それから
人それぞれですし。
お礼コメント
noname#6434
ありがとうございます。

これだと、表のサイズが100x100で決まってしまいます。
又、シート全体のコピぺになってしまいますし、行列の反転をしている為、反転後の列の数が足らなくなってしまいます。

ただ、行が256迄しか使えない事に気が付きました。
投稿日時:2003/12/23 11:22
  • 回答No.2

ベストアンサー率 28% (4497/16046)

下記が参考になれば。
(1)列指定
(2)行指定
(3)最下行、最右列がわかっているときのA1セルからの範囲指定
Sub test04()
i1 = 3: i2 = 4
Rows(1).Select
Columns(2).Select
Range(Cells(1, 1), Cells(i1, i2)).Select
End Sub
お礼コメント
noname#6434
早速の返事ありがとうございます。

え゛っ!!
RangeってCellsが使えるんですか・・・
てっきりRange("A1:Z1")って言う使い方しかできないと
思っていました・・・

もう一度ヘルプをよく読んでみます。

どうも、ありがとうございました。
投稿日時:2003/12/23 11:10
結果を報告する
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,600万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A

その他の関連するQ&Aをキーワードで探す

ピックアップ

ページ先頭へ