過去ログ

                                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) と返るようにしたいのですが?
 ───────────────────────────────────────  ■題名 : Re:セル範囲を返す関数  ■名前 : つん <honey@sweetparty.ne.jp>  ■日付 : 02/9/10(火) 14:18  -------------------------------------------------------------------------
   こんにちは

>セル範囲を返すユーザー定義関数を作成しようとしています。
>
>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
 ───────────────────────────────────────  ■題名 : インデックスが有効範囲にありません  ■名前 : wizard  ■日付 : 02/9/10(火) 14:28  -------------------------------------------------------------------------
   つんさん、さっそく回答ありがとうございます。
試してみたところ、結果は正しく返りますが、「インデックスが有効範囲にありません」のメッセージが都度出てきます。
回避策を教えてくださると、助かります。
(Excel2002です)
 ───────────────────────────────────────  ■題名 : Re:インデックスが有効範囲にありません  ■名前 : つん <honey@sweetparty.ne.jp>  ■日付 : 02/9/10(火) 14:36  -------------------------------------------------------------------------
   >試してみたところ、結果は正しく返りますが、「インデックスが有効範囲にありません」のメッセージが都度出てきます。
>回避策を教えてくださると、助かります。
>(Excel2002です)

ほよ?どの部分で出るのでしょうか?
こちらでは、問題ないのですが・・(ちなみに、うちも2002)
普通に、シート上で

 =frg(D3:D8)

って感じで使うんですよね?
 ───────────────────────────────────────  ■題名 : 解決です(カン違いでした)。  ■名前 : wizard  ■日付 : 02/9/10(火) 15:30  -------------------------------------------------------------------------
   つんさん、ありがとうございます。
同時に開いていた別ブックで悪さしていました。
よく確かめないですみませんでした。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━    通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━                                 Page 57