Page 57 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 通常モードに戻る ┃ INDEX ┃ ≪前へ │ 次へ≫ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ▼セル範囲を返す関数 wizard 02/9/10(火) 13:55 ┗Re:セル範囲を返す関数 つん 02/9/10(火) 14:18 ┗インデックスが有効範囲にありません wizard 02/9/10(火) 14:28 ┗Re:インデックスが有効範囲にありません つん 02/9/10(火) 14:36 ┗解決です(カン違いでした)。 wizard 02/9/10(火) 15:30 ─────────────────────────────────────── ■題名 : セル範囲を返す関数 ■名前 : wizard ■日付 : 02/9/10(火) 13:55 -------------------------------------------------------------------------
セル範囲を返すユーザー定義関数を作成しようとしています。 Function fRg(Target As Range) As String fRg = "(" & Target.Row & "," & Target.Column & ")" End Function Tagetが1つのセルの場合は問題なく、fRg(A1)で(1,1)が返ります。 これをセル範囲を返すように、 fRg(A1:D3)で (1,1),(3,4) と返るようにしたいのですが? |
こんにちは >セル範囲を返すユーザー定義関数を作成しようとしています。 > >Function fRg(Target As Range) As String > fRg = "(" & Target.Row & "," & Target.Column & ")" >End Function > >Tagetが1つのセルの場合は問題なく、fRg(A1)で(1,1)が返ります。 >これをセル範囲を返すように、 fRg(A1:D3)で (1,1),(3,4) と返るようにしたいのですが? こうかな? Function fRg(Target As Range) As String If Target.Count = 1 Then fRg = "(" & Target.Row & "," & Target.Column & ")" Else fRg = "(" & Target.Row & "," & Target.Column & ")(" & Target.Row + Target.Rows.Count - 1 & "," & Target.Column + Target.Columns.Count - 1 & ")" End If End Function |
つんさん、さっそく回答ありがとうございます。 試してみたところ、結果は正しく返りますが、「インデックスが有効範囲にありません」のメッセージが都度出てきます。 回避策を教えてくださると、助かります。 (Excel2002です) |
>試してみたところ、結果は正しく返りますが、「インデックスが有効範囲にありません」のメッセージが都度出てきます。 >回避策を教えてくださると、助かります。 >(Excel2002です) ほよ?どの部分で出るのでしょうか? こちらでは、問題ないのですが・・(ちなみに、うちも2002) 普通に、シート上で =frg(D3:D8) って感じで使うんですよね? |
つんさん、ありがとうございます。 同時に開いていた別ブックで悪さしていました。 よく確かめないですみませんでした。 |