Excel97を使っています。
マウスで指定されたセルの位置が返される関数はありますか?
例えば、その関数をA1に入れておくと、マウスで指定したセルの位置がA1に返されるという関数です。
要するに数式バーの左端に現在のセルの位置が表示されていますよね。
それを関数で指定のセルに表示したいのです。

このQ&Aに関連する最新のQ&A

A 回答 (3件)

補足について、Sheet1で処理を行う想定で書いてみました。


最初のConstの2行で、A列と4行目までを指定しています。実情に合うよう変更して下さい。

Sheet1のコードウインドウに貼り付けます。
最初の質問の回答とは同時登録できませんのでご注意ください。

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  Const BoldCol = "A"    '太字にする列
  Const maxRow = 4      '太字にするセルの最後の行(開始は1行目から)

  '単一セルの操作の場合
  If Target.Count = 1 Then
    'A列の太字属性を解除
    Range(BoldCol & "1:" & BoldCol & maxRow).Font.Bold = False
    If Target.Row <= maxRow Then
      '特定行にあればA列を太字属性にする
      Range(BoldCol & Target.Row).Font.Bold = True
    End If
  End If
End Sub
    • good
    • 0
この回答へのお礼

うわ~! すごい。
まさに前々から、こんなことが出来ればいいなと思いつつ、マクロってチンプンカンプンで投げ出していました。
今でも詳しい意味はわからないけど、コピーして貼り付けさして頂き、自分の知識で解る範囲で改修して利用さしていただきます。
ありがとうございました。

お礼日時:2002/03/16 13:47

こんにちは!



数式では

=ADDRESS(CELL("row"),CELL("col"),4)

こんな感じでしょうか!

ただし、この関数(CELL())は再計算処理がされた時に
更新されますから、

>マウスで指定されたセルの位置が返される

にはならず F9を押すか数値を入力した時点で値が
返されます。

リアルタイムに値を返すのならやはり
#1 nishi6 さんのVBAになると思います!

この回答への補足

ご回答ありがとうございます。
大変参考になりました。
No1の回答の補足でお願いしてますが、良い方法があればご指導ください。

補足日時:2002/03/16 12:29
    • good
    • 0

ワークシート関数は思いつきませんでした。

マクロで行ってみました。

ツール→マクロ→Visual Basic Editor でVBE画面に移り、
表示→プロジェクトエクスプローラでプロジェクトエクスプローラを表示し、

(1)Sheet1に質問の機能を実現する場合は
    →プロジェクトエクスプローラのSheet1をダブルクリック
    →出てきたコードウインドウに下記マクロを貼り付けます。(3行)

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  Range("A1") = Target.Address(False, False)
End Sub


(2)どのシートにも質問の機能を実現する場合は
    →プロジェクトエクスプローラのThisWorkbookをダブルクリック
    →出てきたコードウインドウに下記マクロを貼り付けます。(3行)

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
  Sh.Range("A1") = Target.Address(False, False)
End Sub

当方、Excel2000ですが、Excel97でも問題ないでしょう。ご参考に。

この回答への補足

早速ご回答くださいましてありがとうございます。
マクロのことは余り知識がありませんが、ご指示通りにマクロをコピーして貼り付けますと、うまくいきました。
的を外れた追加質問になるかもしれませんが、教えてください。
シートの左端に行番号がありますが、現在のセルの位置の行番号が太字に表示されて、現在のセルが何行目かすぐわかりますよね。
この様に例えば、A1に水道光熱費、A2に旅費交通費、A3に通信費、A4に交際費と標準文字で入力されていたとき、セルが1行目にあるときは(何列目であっても)A1の水道光熱費が太字文字で表示され、セルが2行目にあるときはA2の旅費交通費が太字文字で表示されると言うような事はできるのでしょうか?
もちろん行が変われば、標準文字に戻るようにです。
よろしくお願いします。

補足日時:2002/03/16 11:52
    • good
    • 0

このQ&Aに関連する人気のQ&A

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

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

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qエクセル関数にて指定位置から下と横にずれた位置の参照する関数について

自社のホームページ上から支店別の販売成績を閲覧出来るのですが、成績の良い支店順に成績が表示されるので自分で支店のアルファベット順に成績結果を修正してオリジナルの成績表を作成しています。
しかし添付画像にありますように支店名の位置が毎日変わるので支店名を基準にした成績を表示するにあたりVLOOKUP関数やHLOOKUP関数では基準のセル位置から真下、真横の位置にあるセルを参照する数式は分かるのですが、基準の位置にあるセル(支店名Aから右にいくつ下にいくつという様に)からずれた位置にあるセルの参照式が分かりません。何卒ご教授願います。

Aベストアンサー

こんばんは。
回答されている皆さんみたいに詳しい者ではないのですが、
コメント失礼します。

回答から、「OFFSET」「MATCH」を使用してサンプルファイルを作成してみました。

よろしければご確認頂ければと思います。
http://firestorage.jp/download/3d907cbdb7ea200114d4c243f0e74bd722f35ab6

ファイル名:サンプル_.xlsx

解決になっていなかったらすみません。
こちらの質問とても勉強になりました。
他の回答者の方々もありがとうございました。

QA1セルにAと入力すると、A2セルに3000A3セルに2000A4セルに1000と表示させたい。

A1セルに「A」と入力する1回だけで、
A2セルに「3000」
A3セルに「2000」
A4セルに「1000」
A5セルに「合計数字」を表示させたいのですが、
式をご教授願いたいです。

よろしくお願いします。

Aベストアンサー

D1:G3
A500030001000
B500300130
C1200800300
A1にA,B,Cのどれかを入れる。
A2に =VLOOKUP($A$1,$D$1:$G$2,ROW(),FALSE)と入れて、
A4まで(G-D-1列数だけの行数)式を複写する。
結果
A1がBの場合A1:A4は
B
500
300
130

A1の空白の場合に対処して
=IF(A1="","",VLOOKUP($A$1,$D$1:$G$2,ROW(),FALSE))
が良いでしょう。
(既回答とほぼ同じ式ですが、1箇所違うところがあります。)

QSUMIF関数で検索条件の指定セルの下の空白セルを指定

関数初心者です、よろしくお願いいたします。
  SUMIF(Sheet2!$C:$C,"あいうえお",Sheet2!$G:$G)
という数式を作りました。
この場合の検索条件C列の”あいうえお”の「2つ下のセル」を検索条件と
したいのですが、その2つ下のセルは文字も数値も入っていません。
(空白のセル)
条件としてC列”あいうえお”とか”かきくけこ”のセルの
常に2つ下のセルを条件にしたいのですが指定はできないのでしょうか。
どうかよろしくお願いいたします。

Aベストアンサー

こんにちは
=SUMIF(Sheet2!$C1:$C65534,"あいうえお",Sheet2!$G3:$G65536)

検索の範囲と合計範囲をずらしてみたのですがどうでしょうか

QEXCEL97のSUM関数で指定できるセル数

こんにちは。
タイトル通りなのですが、ヘルプを見ると30個までと書いてありました。

連続したセルなら指定可能なようなんですが、集計したいセルは1つ置きで、最大個数が今のところ100を越えています。

この場合、
1.30個ずつ小計する関数を入れた非表示のセルを作り、それを合計する。
2.VBAで計算し値だけを集計のセルに入力する。

どちらの方が良いのでしょうか?
ちなみに2はまだ試した事が無いので、やり方等はこれからなのですが、2だと各々の値が入ったセルが更新されても、もう一度マクロを実行しないと再集計されないですよね。

けれど、作った表を客先にデータとして納品するときは、1だと渡してしまった後に向こうで変更してもらうときややこしかったりしないでしょうか。

上手く説明できませんでしたが、よろしくお願いします。

Aベストアンサー

1つおきにってのが1行おきだと仮定します。力技で
=A1+A3+A5+A7+A9+A11+A13
とする代わりに
=SUMPRODUCT(A1:A14,ROW(A1:A14)-ODD(ROW(A1:A14))+1)
と書きます。偶数行なら、式の中のODDをEVENに換えるだけ。

1列おきの場合、式のROWをCOLUMNに換えればいいような気がする
なぁ。自分で検証してみてください。

Q現在のセルの位置を返す関数は?の関連質問です

質問No.236012で素晴らしい回答頂きましたが、締め切ってしまいましたので追加質問をさして頂きます。
nishi6さんの回答No3で
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  Const BoldCol = "A"    '太字にする列
  Const maxRow = 4      '太字にするセルの最後の行(開始は1行目から)
の部分で太字にする開始は1行目からになっていますが、例えば2行目から4行目までという風に、開始の行と最後の行を指定する場合はどのようにすればよいでしょうか。

Aベストアンサー

開始行を指定するようにしてみました。

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  Const BoldCol = "A" '太字にする列
  Const startRow = 2 '太字にするセルの最初の行
  Const maxRow = 4 '太字にするセルの最後の行

  '単一セルの操作の場合
  If Target.Count = 1 Then
    'A列の太字属性を解除
    Range(BoldCol & startRow & ":" & BoldCol & maxRow).Font.Bold = False
    If startRow <= Target.Row And Target.Row <= maxRow Then
      '特定行間内にあればA列を太字属性にする
      Range(BoldCol & Target.Row).Font.Bold = True
    End If
  End If
End Sub

開始行を指定するようにしてみました。

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  Const BoldCol = "A" '太字にする列
  Const startRow = 2 '太字にするセルの最初の行
  Const maxRow = 4 '太字にするセルの最後の行

  '単一セルの操作の場合
  If Target.Count = 1 Then
    'A列の太字属性を解除
    Range(BoldCol & startRow & ":" & BoldCol & maxRow).Font.Bold = False
    If startRow <= Target.Row And Target.R...続きを読む


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

人気Q&Aランキング

おすすめ情報