- ベストアンサー
エクセルのボタンとマクロを教えてください
- エクセルのボタンとマクロについて教えてください。
- ボタンを押すと指定したフォルダを作成し、ハイパーリンクを記載する方法を教えてください。
- エクセル2003を使用しており、2000行分のボタンを設置する方法を知りたいです。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
やりたい部分はできているのですよね >完成させたつもりでしたが、フォームからボタンをC列に2000コも >作成しようとすると、設置位置も汚くなるし、なんともスマートにできず >どなたか、スキルのある方にご教授願いたく投稿させていただきました。 2000個もボタンを作っても操作しにくいと思います セルをダブルクリックした場合に 実行 或いは右クリックした場合に 実行では如何でしょうか。 シート名のタブを右クリック、コードの表示をクリック、VBエディターが起動したら Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Target.Column = 3 Then MsgBox "クリックした行は" & Target.Row & "です" End If End Sub Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean) If Target.Column = 3 Then MsgBox "クリックした行は" & Target.Row & "です" End If End Sub を貼り付けて、閉じる c列のセルをダブルクリック、あるいは右クリックしてみ下さい。
その他の回答 (1)
- nicotinism
- ベストアンサー率70% (1019/1452)
私も先の回答者さんと同感。 ボタンを2000個も配置するのはお勧めできません。 Bookのサイズも大きくなってしまいます。 データ量が増えればボタンも追加しなくてはいけません。 好みの問題かもしれませんが、ハイパーリンクも無しにします。 (↑これは単に面倒くさいからかも (^^ゞ 現状が A B C D 1 3月4日 法人名 ボタン 作成したフォルダのハイパーリンク でC列が空いているとしたら Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Select Case Target.Column Case 3 'C列 Cancel = True 'ダブルクリックを無かったことにする '本来の処理に差し替えてください MsgBox Target.Offset(0, -1).Address & " " & Target.Offset(0, -1).Value MsgBox Target.Offset(0, -2).Address & " " & Target.Offset(0, -2).Value Case 4 'D列 Cancel = True CreateObject("shell.application").ShellExecute Target.Value End Select End Sub これでD列のセルをダブルクリックした時はフォルダーが開きます ファイル名が入っていたならそのアプリケーションで開かれますし、インターネットのアドレスもOK。 ご参考までに。
お礼
素晴らしいコードをいただきまして誠にありがとうございます! やはり面倒くさいという気持ちはプログラムを向上させる秘訣のようですね。 大変参考になりました。 ありがとうございます!
お礼
エクセルを一度閉じて、再度開いたら動きました! ありがとうございます。 セル自体をボタンにするという考えはあったのですが 指摘していただいた If Target.Column = 3 Then の コードが思い浮かばず、ボタンへ逃げておりました。 本当に ハッ! っとした思いでした。 大変ありがとうございました!
補足
ご回答ありがとうございます! 貼り付けて試してみましたが、メッセージBOXは 表示されませんでした・・・ 何か必要な初期設定があるのでしょうか??