アプリ版:「スタンプのみでお礼する」機能のリリースについて

Excelでグラフ(散布図)のポイントをクリックしたときに、そのグラフ上の何番目かを所得してレコード情報をフォーム上に表示するように作成しました。
しかし、オートフィルタで絞り込んだ場合には取得した番号と行番号が一致しないので困っています。
そこで質問なのですが
1.可視セルの何番目というような取得方法はあるのでしょうか?
2.それともグラフからポイントの何番目というのではなく、元データの行番号は取得可能でしょうか?

分かりにくい質問で申し訳ないのですが、よろしくお願いします。

A 回答 (1件)

こんにちは。


元のコードがなくては、よく分かりませんが、こういうことでしょうか?

'サンプルコード
'可視セルを順番に取得しているはずです。

Sub test1()
 Dim myRows As String, c As Range
 Dim Rng As Range
 On Error GoTo 0
 '1番上をフィールド名(項目行)だとしたら
 Set Rng = Range("A2", Range("A2").End(xlDown)).SpecialCells(xlCellTypeVisible)
 On Error Resume Next
 For Each c In Rng.Cells
  myRows = myRows & "," & c.Row
 Next
 MsgBox Mid$(myRows, 2)
End Sub
    • good
    • 0
この回答へのお礼

早速の回答ありがとうございます。
元のコードを載せていなくてすみません。
今回は、以下のようにコードを書いています。

Public myClass1 As New Class1
Public Sub InitializeChart()

Set myClass1.myChartClass = Worksheets(1).ChartObjects("Test").Chart
End Sub

クラスモジュール(Class1)
Public WithEvents myChartClass As Chart
Private Sub myChartClass_MouseUp(ByVal Button As Long, ByVal Shift As Long, ByVal X As Long, ByVal Y As Long)
Dim ElemID As Long, Arg1 As Long, Arg2 As Long
Dim Var, XVar, YVar, MyRow As Variant
ActiveChart.GetChartElement X, Y, ElemID, Arg1, Arg2
Select Case ElemID
Case xlSeries
Range("A2:A10").Select
Selection.SpecialCells(xlCellTypeVisible).Select
With ActiveSheet.UsedRange
MyRow = .Resize(.Rows.Count).Offset(Arg2 + 1) _
.SpecialCells(xlCellTypeVisible).Row
End With
End Select
End Sub

で、「MyRow」で取得した行番号を利用していました。
OffsetやCellsを利用していては無理ですよね。

回答を参考に可視セルのみから何番目というのが取得できるようになり解決しました。
ありがとうございました。

お礼日時:2005/07/12 14:47

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A