エクセルの罫線を変数で範囲指定するには?

解決


bB  2006-01-11 17:31:06  No: 93538

xlSheet.Range("A1:F6").Borders.LineStyle = xlContinuous
このときの ("A1:F6")を変数を使って範囲を指定したいのですがどうしたら良いのでしょうか?


特攻隊長まるるう  2006-01-11 20:44:59  No: 93539

VBのプログラムで " " で挟まれた部分はただの文字列ですので
好きなように変数に置き換えて使用してください。


bB  2006-01-11 22:18:30  No: 93540

説明が下手ですいません.。
("A1:F6")はデータが、6*6の36の範囲ですが、データは変動するので、変数などを使って、カッコの範囲を変更したいのです。


特攻隊長まるるう  2006-01-11 23:10:44  No: 93541

同じ説明を繰り返しているようにしか聞こえませんが、
こういった質問をされる方のパターンから結論を推測
すると、どうやってセルの範囲を決定するのかの
具体的な例をあげて頂かないと話が進みません。
それは質問する側が考える内容です。

いままでの説明では回答は変わりません。
[VB6.0]
Dim strCellAddress As String
strCellAddress = "A1:F6"
xlSheet.Range(strCellAddress).Borders.LineStyle = xlContinuous


bB  2006-01-12 00:11:52  No: 93542

何度もすいません
例  ある学校の生徒の成績表を出します
名前|国語|算数|社会|理科|英語|  
A君 | 100 | 80  | 98  | 95  | 60  |
B君 | 70  | 70  | 50  | 40  | 50  |
C君 | 50  | 50  | 60  | 50  | 50  |
D君 | 10  | 80  | 98  | 95  | 60  |
E君 | 100 | 70  | 50  | 40  | 50  |
F君 | 50  | 0   | 60  | 50  | 50  |
このデータが("A1:F6")だと仮定して、
この先G君とかH君が入ってきたとき
("A1:F8")と書くのではなく、自動でFの部分の数字を増やしたいと思っています。
変な説明ですいません


bB  2006-01-12 00:11:52  No: 93543

何度もすいません
例  ある学校の生徒の成績表を出します
名前|国語|算数|社会|理科|英語|  
A君 | 100 | 80  | 98  | 95  | 60  |
B君 | 70  | 70  | 50  | 40  | 50  |
C君 | 50  | 50  | 60  | 50  | 50  |
D君 | 10  | 80  | 98  | 95  | 60  |
E君 | 100 | 70  | 50  | 40  | 50  |
F君 | 50  | 0   | 60  | 50  | 50  |
このデータが("A1:F6")だと仮定して、
この先G君とかH君が入ってきたとき
("A1:F8")と書くのではなく、自動でFの部分の数字を増やしたいと思っています。
変な説明ですいません


特攻隊長まるるう  2006-01-12 00:34:32  No: 93544

つまり質問は
>名前|国語|算数|社会|理科|英語|  
>A君 | 100 | 80  | 98  | 95  | 60  |
>B君 | 70  | 70  | 50  | 40  | 50  |
>C君 | 50  | 50  | 60  | 50  | 50  |
といったエクセルでデータの入力されている範囲を
取得する方法は?であって
>エクセルの罫線を変数で範囲指定するには?
ではありませんね?

条件として
>この先G君とかH君が入ってきたとき
>("A1:F8")と書くのではなく、自動でFの部分の数字を増やしたいと思っています。
は重要です。よく状況が分かります。

では具体的にそのデータを追加するときは、誰がどうやって
追加するのですか?例えばエクセルにはあるセル範囲に
『名前』を付けてやって、名前で指定すれば変更された
セル範囲を取得できる機能があります。
データの部分のセルに名前をつけてよいのであれば、
それが一番分かり易いプログラムでは無いかと思います。
ただし、G君とかH君を追加するときに名前のセル範囲に
気をつけて追加しないといけません。


bB  2006-01-12 03:31:27  No: 93545

特攻隊長まるるうさん  何度もすいません
VBで、日々入力しているデータはエクスポートできるのですが、VBで罫線のひき方がわからないので、エクスポートが終わったら、VBを閉じて、エクセルを開き、エクスポートしたときに追加させたデータ分だけ、自分で罫線を書いているので、それを自動化したいと、思っています


みい  2006-01-12 03:57:09  No: 93546

つまり何行目までかは自分で分かっているのですよね。
最終行がiCntという変数に入っているとすると
特攻隊長まるるう様のサンプルの2行目を
strCellAddress = "A1:F" & CStr(iCnt)
に変更するとか?


特攻隊長まるるう  2006-01-12 04:04:37  No: 93547

なるほど、エクスポートはあまり利用して無いので知識が乏しいですが
セル範囲を調整する必要がありそうなので『名前』をつけるのは
やめた方がよさそうです。

>つまり何行目までかは自分で分かっているのですよね。
分かって無い場合は使用されている最後のセルを取得する方法があります。

隣りの初心者掲示板の方が過去ログが充実してるんですが、
『最後のセル』というキーワード検索すれば
http://madia.world.coocan.jp/cgi-bin/VBBBS2/wwwlng.cgi?print+200310/03100081.txt
http://madia.world.coocan.jp/cgi-bin/VBBBS2/wwwlng.cgi?print+200505/05050117.txt
などが引っかかります。

他のデータが存在する等、都合が悪い場合はループでセルに
入ってるデータを1つ1つ確認していけば、どこのセルまでデータが
あるか分かりますよね?


bB  2006-01-12 17:39:50  No: 93548

特攻隊長まるるうさん、みいさん  質問もろくにできない、私につきあってくれてありがとうございます。 
お二人の意見を参考にして、試してみたらできました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加