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

マトリックス表の検索表を作成しています。
写真のように、B1に「う」、B2に「う」と入力すると、B3に高橋が表示されるようにしました。

B3に結果として高橋が表示されていますが、それと同時にF6にカーソルがジャンプする方法が知りたいです。

今は、数少ない表ですが今後多くなると見にくくなるため、どなたか教えてください。

「エクセル検索結果されたら、参照しているセ」の質問画像

質問者からの補足コメント

  • GooUserラック様

    マクロは何もわからないんです。ちなみに、この表は会社の関係各部署とメールをやりとりし、各々のパソコンで編集し閲覧できる仕様を考えています。

    自分の知識がないのですが、確かマクロは自分のパソコンで作成した場合、他のパソコンにデーターを送ったら、送られたパソコンで編集とかできなかったように思うのですが、いかがでしょうか?

    もし他のパソコンにデーターを送って、そこでもマクロが使えるようでしたら教えていただきたいと思います。

    よろしくお願いします

    No.1の回答に寄せられた補足コメントです。 補足日時:2017/04/23 15:22
  • TOM様ありがとうございます。

    自分の説明が悪かったのかもしれません。TOM様の方法で結果を得ることはできました。
    そこでさらにご相談です。1枚目の写真で「て」「つ」の結果、「田中」となりました。自分がイメージしていたのは、2枚目の写真のように「結果」を左上に表示させることはできないでしょうか?

    「エクセル検索結果されたら、参照しているセ」の補足画像2
    No.3の回答に寄せられた補足コメントです。 補足日時:2017/04/23 23:03
  • これが2枚目の写真です。
    よろしくお願いします

    「エクセル検索結果されたら、参照しているセ」の補足画像3
      補足日時:2017/04/23 23:04
  • TOM様

    写真1のように、シートの見出表「薬剤配合禁忌」を右クリックし「コードの表示」がでました。
    写真2では、この画面にコピーペーストしました。そのまま、×を押してエクセル画面に戻り、B3をエンターしても、画面は「左上」にならないです。写真2の入力する場所が違うのでしょうか?

    自分はVBAの入力画面に出てくる、「モジュール」「クラスモジュール」を理解できていません。
    ちなみに、今はMACを使用しています。どうかよろしくお願いします。

    「エクセル検索結果されたら、参照しているセ」の補足画像4
    No.4の回答に寄せられた補足コメントです。 補足日時:2017/04/24 02:37
  • これが2枚目の写真です。よろしくお願いいたします

    「エクセル検索結果されたら、参照しているセ」の補足画像5
      補足日時:2017/04/24 02:38
  • なるほど、B3をダブルクリックなのですね。今は、B1とB2の結果がB3に反映されるようにセルに=INDEX(D4:W37,MATCH(B1,C4:C28,0),MATCH(B2,D3:AB3,0))が入力されています。

    このB3のセルをダブルクリックすると、B3にもともと入力されている関数が編集できるような状態となりますので、おそらくマクロが実行されていないということなのかもしれません。

    この点についてh改善はできますでしょうか?

    「エクセル検索結果されたら、参照しているセ」の補足画像6
    No.5の回答に寄せられた補足コメントです。 補足日時:2017/04/24 13:03
  • 必ずしもVBAというこではないので、HYPERLINK関数でも実行ができるのでしたら参考にさせてください。
    やりたいことは、B1、B2はリストから選択し、表の交差する部分がB3に表示されるようになっています。このB3の結果にセルがジャンプする方法を知りたいです。また、そのジャンプされたセルが表の左上に表示されることも求めています。
    よろしくお願いします

    No.6の回答に寄せられた補足コメントです。 補足日時:2017/04/24 13:41
  • 現在のB3の数式はB1とB2に選択した結果が出ているだけで、表の目的のセルにジャンプしません。また、目的のセルが表の左上にもなりません。

    B4=HYPERLINK("#"&ADDRESS(MATCH(B1,$C$1:$C$7,0),MATCH(B2,$A$3:$G$3,0),,1,),"クリック")やってみました。ですが、なぜか目的のセルにはジャンプしません。(全く違うところにジャンプしています)また、目的のセルが表の左上にもでてきません。

    No.7の回答に寄せられた補足コメントです。 補足日時:2017/04/24 14:04

A 回答 (9件)

このてはマクロ(VBA)を使う事になると思います。

それでもよろしいですか?
この回答への補足あり
    • good
    • 0

他のパソコンでも使えますが、会社関係だと、マクロを禁止している場合があります。

簡単にウィルスモドキを作ることが出来るためです。
    • good
    • 0

こんばんは!



>それと同時にF6にカーソルがジャンプする方法が知りたいです。

VBAでの処理になってしまいます。
画像の配置通りとします。

画面左下の操作したいシート見出し上で右クリック → コードの表示 → VBE画面のカーソルが点滅しているところに
↓のコードをコピー&ペースト → Excel画面に戻り(VBE画面を閉じて)
B3セルをダブルクリックしてみてください。

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) '//この行から//
Dim c As Range, r As Range
If Target.Address = "$B$3" Then
Cancel = True
Set c = Range("C:C").Find(what:=Range("B1"), LookIn:=xlValues, lookat:=xlWhole)
Set r = Rows(3).Find(what:=Range("B2"), LookIn:=xlValues, lookat:=xlWhole)
Cells(c.Row, r.Column).Select
End If
End Sub '//この行まで//

※ ファイルを他のパソコンに送った場合、
他のパソコンのExcelの「セキュリティセンターの設定」に手を加える必要が出てくると思います。

ファイル → オプション → セキュリティセンター → セキュリティセンターの設定 → 「マクロの設定」で「すべてのマクロを有効にする」を選択し、OK m(_ _)m
この回答への補足あり
    • good
    • 0

No.3です。



あぁ~~~
行・列を非表示にしたい!というコトだったのですか。

再表示のコードも必要だと思いましたので、
B3セルをダブルクリックするたびに、非表示 → 再表示 → 非表示・・・となるようにしてみました。

前回のコードはすべて消去し↓のコードに変更してください。

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim i As Long, j As Long
Dim c As Range, r As Range, myFlg As Boolean
If Target.Address = "$B$3" Then
Cancel = True
For i = 5 To Cells(Rows.Count, "C").End(xlUp).Row
If Rows(i).Hidden = True Then
myFlg = True
Exit For
End If
Next i
If myFlg = False Then
For j = 5 To Cells(3, Columns.Count).End(xlToLeft).Column
If Columns(j).Hidden = True Then
myFlg = True
Exit For
End If
Next j
End If
If myFlg = False Then
Set c = Range("C:C").Find(what:=Range("B1"), LookIn:=xlValues, lookat:=xlWhole)
Set r = Rows(3).Find(what:=Range("B2"), LookIn:=xlValues, lookat:=xlWhole)
If c.Row > 4 Then
Range(Cells(4, "C"), Cells(c.Row - 1, "C")).EntireRow.Hidden = True
End If
If r.Column > 4 Then
Range(Cells(3, "D"), Cells(3, r.Column - 1)).EntireColumn.Hidden = True
End If
Else
Rows.Hidden = False
Columns.Hidden = False
End If
End If
End Sub

※ 非表示の状態でB1・B2のデータを入れ替えB3をダブルクリックしても一度再表示されますので、
もう一度ダブルクリックしてください。m(_ _)m
この回答への補足あり
    • good
    • 0

No.3・4です。



>B3をエンターしても、画面は「左上」にならないです。

今まで投稿したコードはB3セルをダブルクリックするとマクロが実行されるシートモジュールです。
B3セルを選択後、Enterを押下しても何も変化しません。

質問文に
>B1に「う」、B2に「う」と入力すると、B3に高橋が表示されるようにしました。

とありますので、B3セルには何らかの数式が入っていると判断し、
再計算のたびにマクロが実行されても煩わしいばかりだと思いましたので、
B3セルをダブルクリックする方法にしていました。

画像を拝見するとちゃんとシートモジュールになっているようですので
B3セルをダブルクリックしてみてください。m(_ _)m
この回答への補足あり
    • good
    • 0

HYPERLINK関数ではダメなんですか?


B4には元々関数が入っていて今までそれで運用していたけど、VBAに切り替えるということですか?
この回答への補足あり
    • good
    • 0

B3は、すでに式でできているんですよね?



ちなみに最初の質問に貼り付けていた表で作成した式が

B4=HYPERLINK("#"&ADDRESS(MATCH(B1,$C$1:$C$7,0),MATCH(B2,$A$3:$G$3,0),,1,),"クリック")

となります。関数でもいいというなら、他の方からもっといい式が出るかも知れませんが。
この回答への補足あり
    • good
    • 0

>表の目的のセルにジャンプしません



あぁ、まぁそれはそうでしょうね。表示しただけでジャンプならVBAです。
私の式はあくまでも、最初の質問に添付していた表を元に作成しています。こちらではうまくいってますので、実際の表と何かが違うのでしょうね。
ちなみに、数式バーで「ADDRESS ~ ,,1,)」までを選択した状態でF9を押すとセルアドレスが表示されると思いますが、そこに表示されるセルアドレスと行ってほしいアドレスは違っていますか?(ま、多分違うんでしょうが。)
式の意味はわかりますか?

>目的のセルが表の左上にもでてきません。

あー、ここ意味がわかってなかったのですが、画面が目的のセルが左上になるように移動してほしいということですね。
ここまで求めるならVBAの方がいいでしょうね。
    • good
    • 0

No.3・4・5です。



>このB3のセルをダブルクリックすると、B3にもともと入力されている関数が編集できるような状態となりますので・・・

ん?MAC版のExcelでは編集可能になりますか?
コード内に
>Cancel = True
と記載しているので、こちらのWindows版のExcelでは編集可能にはなりません。
もちろんB3セルを選択した状態では数式バー内で編集は可能ですが・・・

※ No.4のコードは試されたのでしょうか?m(_ _)m
    • good
    • 0
この回答へのお礼

TOM様 ありがとうございます。
できました!ファイルを開くたびにVBAを無効で開いていたのが原因だったかもしれせん。

いつもわかりにくい説明を汲んでくださり本当にありがとうございます!


この表はこれからC4:C500まで拡大するので、これで仕事が格段に早くなります。

ありがとうございました!

お礼日時:2017/04/24 15:06

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