Page 80 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 通常モードに戻る ┃ INDEX ┃ ≪前へ │ 次へ≫ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ▼Columns()を簡潔に記述するには haru 02/8/29(木) 11:34 ┣Re:Columns()を簡潔に記述するには りん 02/8/29(木) 11:41 ┃ ┗Re:Columns()を簡潔に記述するには Jaka 02/8/29(木) 12:10 ┃ ┗今後ともよろしくお願いします 谷 誠之 02/8/29(木) 15:08 ┃ ┗こちらこそ、よろしくお願いします Jaka 02/8/30(金) 13:33 ┃ ┗Re:こちらこそ、よろしくお願いします 谷 誠之 02/8/30(金) 17:12 ┣Re:Columns()を簡潔に記述するには 角田 02/8/29(木) 15:00 ┃ ┗Re:Columns()を簡潔に記述するには ゆと 02/8/29(木) 18:05 ┃ ┗Re:Columns()を簡潔に記述するには haru 02/8/29(木) 20:23 ┗印刷タイトルのcolumnを簡単に設定するには haru 02/9/14(土) 9:59 ┗Re:印刷タイトルのcolumnを簡単に設定する... つん 02/9/14(土) 10:38 ┗Re:印刷タイトルのcolumnを簡単に設定する... haru 02/9/14(土) 11:14 ─────────────────────────────────────── ■題名 : Columns()を簡潔に記述するには ■名前 : haru ■日付 : 02/8/29(木) 11:34 -------------------------------------------------------------------------
Columns("a:c")とするときに括弧内の値を数字で指定できればと、 思うのですが、簡潔に記述できません。 1ならa、2ならb、・・・という風にしたいとき、どうされていま すか? よろしくお願いします。 いまは、chr、asc関数を使ってやっています。 |
haru さん、こんにちわ。 > Columns("a:c")とするときに括弧内の値を数字で指定できればと、 >思うのですが、簡潔に記述できません。 > 1ならa、2ならb、・・・という風にしたいとき、どうされていま >すか? たとえばこんな方法 Sub test() With ActiveSheet MsgBox .Range(.Columns(1), .Columns(3)).Address End With End Sub |
> Columns("a:c")とするときに括弧内の値を数字で指定できればと、 >思うのですが、簡潔に記述できません。 > 1ならa、2ならb、・・・という風にしたいとき、どうされていま >すか? こんにちは。 こんなんじゃダメ? a = 1 b = 2 Columns(a).Resize(, b - a + 1).Select ゴミ ここが、こんな風になっているとは、知りませんでした。 書き込みに何度も拒否されて「ちょぉっとー...。」てな気分でした。 |
Jakaさん、 VBA質問箱主宰者の谷です。 >ゴミ >ここが、こんな風になっているとは、知りませんでした。 >書き込みに何度も拒否されて「ちょぉっとー...。」てな気分でした。 おそれいりますが、なぜ、書き込みに何度も拒否されたのでしょうか。 もしよろしければ、教えてください。 質問箱 IV も始まったばかりで、まだいくつかの調整部分を残しております。 今後とも、どうぞよろしくお願いいたします。 |
>おそれいりますが、なぜ、書き込みに何度も拒否されたのでしょうか。 >もしよろしければ、教えてください。 >質問箱 IV も始まったばかりで、まだいくつかの調整部分を残しております。 >今後とも、どうぞよろしくお願いいたします。 こんにちは。初めまして。[ハート] 谷さんとは、初めてですねぇ! こちらこそ、よろしくお願いいたします。 いつも気分で、勝手に書きこみして、済みません。 で、原因なんですが、私が説明書を読まずに今まで道理の方法で返信しようとしたからです。 何度も「パスワードが必要です。」と出たため何でいちいちパスワード書くの? と、思い適当に一文字入れたんです(覚えてない。)が、また、パスワードを要求されました。 イラつきながら、文章を書きなおして、ジャンルアイコン表示てのを見つけたんで、もしかしてこれかなと、回答を選んで送信したら送信されたと言う事です。 尚、「てな気分でした。」って、一度も送る事が出来てないのに過去形で書いてますね! こんな奴なんです。私は....。[チョキ] |
Jakaさん、谷です。 >こちらこそ、よろしくお願いいたします。 >いつも気分で、勝手に書きこみして、済みません。 いえいえ、こちらこそ、よろしくお願いいたします。 >で、原因なんですが、私が説明書を読まずに今まで道理の方法で返信しようとしたからです。 >何度も「パスワードが必要です。」と出たため何でいちいちパスワード書くの? >と、思い適当に一文字入れたんです(覚えてない。)が、また、パスワードを要求されました。 >イラつきながら、文章を書きなおして、ジャンルアイコン表示てのを見つけたんで、もしかしてこれかなと、回答を選んで送信したら送信されたと言う事です。 いくつか機能を追加しましたからね。 エラーの場合は、エラーの原因が画面に表示されますので、まずはそれをお読みくださいね。(パスワードは、削除するためのパスワードです) |
こんにちは。 >いまは、chr、asc関数を使ってやっています。 それをユーザー定義関数にしておけば良いんじゃないですか? そうすれば Columns(xxxx(1) & ":" & xxxx(3)) とか Columns(yyyy(1,3)) とかいう風にできますよ。 興に乗って作ってみました(kt関数アドインV2.60に収録します)。 双方向変換です(256→"IV" / "IV"→256) [数値→文字]の場合だけ、第2prmで範囲指定できます( (2,3) → "B:C" ) Public Function ktColumnChar(ByVal Num_Char As Variant, _ Optional ByVal Num2 As Variant) As Variant Dim i As Integer Dim j As Integer Dim k As Integer If IsNumeric(Num_Char) Then If (Num_Char >= 1) And (Num_Char <= 256) Then i = (Num_Char - 1) \ 26 j = ((Num_Char - 1) Mod 26) + 1 If (i = 0) Then ktColumnChar = Chr(j + 64) Else ktColumnChar = Chr(i + 64) & Chr(j + 64) End If Else ktColumnChar = CVErr(xlErrValue) Exit Function End If If Not IsMissing(Num2) Then If IsNumeric(Num2) Then If (Num2 >= 1) And (Num2 <= 256) Then If (Num_Char <= Num2) Then i = (Num2 - 1) \ 26 j = ((Num2 - 1) Mod 26) + 1 If (i = 0) Then ktColumnChar = ktColumnChar & ":" & Chr(j + 64) Else ktColumnChar = ktColumnChar & ":" & Chr(i + 64) & Chr(j + 64) End If Else ktColumnChar = CVErr(xlErrValue) End If Else ktColumnChar = CVErr(xlErrValue) End If End If End If Else If (Len(Num_Char) = LenB(StrConv(Num_Char, vbFromUnicode))) Then Select Case Len(Num_Char) Case 1 k = Asc(Num_Char) Select Case k Case 65 To 90: ktColumnChar = k - 64 Case 97 To 122: ktColumnChar = k - 96 Case Else: ktColumnChar = CVErr(xlErrValue) End Select Case 2 k = Asc(Left(Num_Char, 1)) Select Case k Case 65 To 90: i = k - 64 Case 97 To 122: i = k - 96 Case Else ktColumnChar = CVErr(xlErrValue) Exit Function End Select k = Asc(Right(Num_Char, 1)) Select Case k Case 65 To 90: j = k - 64 Case 97 To 122: j = k - 96 Case Else ktColumnChar = CVErr(xlErrValue) Exit Function End Select ktColumnChar = (i * 26) + j Case Else ktColumnChar = CVErr(xlErrValue) End Select Else ktColumnChar = CVErr(xlErrValue) End If End If End Function |
こんにちは とりあえず、すでに皆さんが答えておられるので、不要かとも思いますが。 Sub test() Dim i%,j% i% = 1 j% = 3 Range(Columns(i%),Columns(j%)).Select End Sub という形でいかがでしょうか? |
みなさん、色々ありがとうございます。 うまくいきました。 重ねて、お礼申し上げます。 |
印刷時の見出し(印刷タイトル)をマクロで記録したら、 With ActiveSheet.PageSetup .PrintTitleRows = "$1:$3" .PrintTitleColumns = "$A:$C" End With という風になりました。 rowの方は、簡単に3の部分を変数にできるんですが、 columnの方も1〜3を数字で指定できる方法はないでしょうか? 今は、数字をchrで変換しています。 よろしくお願いします。 |
おはようございます。 こんな感じ Sub test() Dim C1 As Long Dim C2 As Long C1 = 2 C2 = 3 With ActiveSheet.PageSetup .PrintTitleColumns = ActiveSheet.Range(Columns(C1), Columns(C2)).Address End With End Sub PrintTitleColumnsのヘルプ(使用例)と、皆さんのこれまでの回答の合わせ技(?)で簡単に答えが出ましたよ♪ 私もしたことなかったので、勉強になりました♪ |
▼つん さん: おはようございます。 > With ActiveSheet.PageSetup > .PrintTitleColumns = ActiveSheet.Range(Columns(C1), Columns(C2)).Address > End With ありがとうございます。うまくいきました。 |