エクセルのボタンとマクロを教えてください

このQ&Aのポイント
  • エクセルのボタンとマクロについて教えてください。
  • ボタンを押すと指定したフォルダを作成し、ハイパーリンクを記載する方法を教えてください。
  • エクセル2003を使用しており、2000行分のボタンを設置する方法を知りたいです。
回答を見る
  • ベストアンサー

エクセルのボタンとマクロを教えてください。

作成したいものがあと、少しでできるのですが 最後の山でヘタってしましまして、どなたか助太刀願います。 やりたいこと    A       B     C           D 1 3月4日  法人名  ボタン  作成したフォルダのハイパーリンク 2                ↑ 3              2000コ作成 上記のようなエクセル表を作成し、C列のボタンを実行した際に ボタンを押した行のA列の日付とB列の法人名を取得して 指定したフォルダ配下に法人名のフォルダを作成して D列に作成したフォルダのハイパーリンクを記載するという内容を エクセルシートで2000行分、作成しようとしています。 困っていること とりあえず、アクティブセルの場所を取得して、そこから 日付と法人名を取得し、フォルダを作成してハイパーリンクを 貼り付けるというVBAは作成できました。 あとは、アクティブセルの取得を下記のコードに代用して ---------------------------------------------------------- Dim rng ' フォームボタンの取得 Set rng = ActiveSheet.Shapes(Application.Caller).TopLeftCell ---------------------------------------------------------- 完成させたつもりでしたが、フォームからボタンをC列に2000コも 作成しようとすると、設置位置も汚くなるし、なんともスマートにできず どなたか、スキルのある方にご教授願いたく投稿させていただきました。 エクセルは2003を使っております。 WindowsはXPです。 何卒よろしくお願いします。m(_ _)m

質問者が選んだベストアンサー

  • ベストアンサー
  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.1

やりたい部分はできているのですよね >完成させたつもりでしたが、フォームからボタンを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列のセルをダブルクリック、あるいは右クリックしてみ下さい。

sususuke
質問者

お礼

エクセルを一度閉じて、再度開いたら動きました! ありがとうございます。 セル自体をボタンにするという考えはあったのですが 指摘していただいた If Target.Column = 3 Then の コードが思い浮かばず、ボタンへ逃げておりました。 本当に ハッ! っとした思いでした。 大変ありがとうございました!

sususuke
質問者

補足

ご回答ありがとうございます! 貼り付けて試してみましたが、メッセージBOXは 表示されませんでした・・・ 何か必要な初期設定があるのでしょうか??

その他の回答 (1)

  • nicotinism
  • ベストアンサー率70% (1019/1452)
回答No.2

私も先の回答者さんと同感。 ボタンを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。 ご参考までに。

sususuke
質問者

お礼

素晴らしいコードをいただきまして誠にありがとうございます! やはり面倒くさいという気持ちはプログラムを向上させる秘訣のようですね。 大変参考になりました。 ありがとうございます!

関連するQ&A

  • EXCELのボタンとハイパーリンクについて

    こんにちは。よろしくお願いします。 EXCELの97でも2000でも2002でも構わないのですが、 EXCELのフォームツールバーある「ボタン」をつかって ボタンをクリックすると特定のフォルダにジャンプする という操作をしたいのですが・・・・ 今は、とりあえず任意のセルに、ハイパーリンクを作成し、 C:\My Documents\表計算 というような、ハイパーリンクを作っていて、実行すると Explorerが起動して、表計算フォルダに中に入っている ファイルを選択するという形です。 そして、キー登録のマクロで、ハイパーリンクのところを クリックする。というのを作成し、ボタンをハイパーリンクの上に 作成し(ハイパーリンクの文字をボタンで隠しているような状態です) ボタンにマクロを登録しているような状態です。(分かっていただけますか?) そこで、質問は 「ボタンに直接ハイパーリンクの記憶をさせたい。」 (任意のセルにハイパーリンクを作らなくてもいいようにしたい) ということです。きっとマクロを記述できれば良いのでしょうが、 全くマクロに対しては、知識がありません。 意味がわからなければ、いくらでも、補足しますので、よろしくお願いします。

  • エクセル ボタンへのマクロのやり方

    エクセルを使用して、エクセル内に作成した"ボタン"をクリックすると指定のURLへ飛べるようにしたいのですが、どうやったらいいのでしょうか? 通常セル内に文字を入力してハイパーリンクをやればURLに飛べると思いますが、"ボタン"を付けた場合右クリックをしてもハイパーリンクの文字が出てきません。 マクロを使えば出来ると思うのですが、マクロもホントのホントに初心者なのでよく分かりません。 どなたか詳しく教えて頂けないでしょうか。 よろしくお願いいたします。

  • エクセル マクロ ボタン

    A1に入力規制のリストで10個ほどリストを作成し B1に日付を入力します。 C1に検索ボタンを作成します シートはいろいろ作成しておく シート名はリンゴ2017年6月27日と表記されている 他に〇〇日付で表記したシートを複数用意しています たとえばA1にリンゴとリストから選び、B1に2017年6月27日と 入力しC1のボタンを押すと D1にリンゴと日付が一致したシート名があればD1にシート名を表示する マクロを作りたいのですが、プログラムが全くわかりません 教えて頂けないでしょうか?

  • エクセルのマクロについてです。

    すいません。教えてください エクセルのハイパーリンクを一括で登録したいです。 Dの列に品番がずらっとのっていて、その各行ごとのHの列にハイパーリンクを別のフォルダに格納されている、エクセルの同じ品番を検索して貼りたいです。マクロ初心者で大変なやんでます。よろしくお願いします。

  • ボタンクリックで決めた場所に日付を表示

    エクセルで決めた場所のセルに、 その日の日付を表示させたいのです。  例えば、フォームでボタンを作って、そのボタンを押すと、 アクティブセルがどこにあってもB1にその日の日付を表示 させたいのです。 ボタンにマクロの記録を登録するまでは出来たのですが、 ボタンを押すと、表示させたいB1をアクティブセルにして いないとその場所に出ません。 説明がわかりづらいかもしれないですが 教えていただければありがたいです。

  • エクセルマクロ 次のようなプログラム教えてください

    エクセルのマクロで、次のようなことをしたいと思っていますが、 素人でわかりません。 教えていただけますか。 ---------------------------------- o動かしているファイルをa.xlsとします。  a.xlsは、3行目からA列に名前、B列~D列にデータが入っていて、  各行ごとのファイルを作りたい。(行数は決まっていない)  なお、セルE1にある文字が入っている。 o各ファイルは、原紙としてgensi.xlsとして保存されているファイルに、  a.xlsのB~D列のものを入力したものを作りたい。  (B~D列のデータは、gensi.xlsのそれぞれセルC7・C8・C9に入力する)   gensi.xlsは、a.xlsと同じフォルダにあります。 o作成場所は、「C:\date」の中に、セルE1にある文字のフォルダ、A列に  ある名前のフォルダに作りたい。 (セルE1の文字のフォルダは、マクロを初めて実施するときは無いと思います  が、2回目からは存在すると思います。A列の名前のフォルダはマクロ実施時  にはありません。作成するファイル名は、A列の名前と同じ(フォルダ名と同じ).xls にします。) o実行ボタンを3つ作って、1つは今選択されている行のフォルダ・ファイルを作る。  2つ目は数字を入力させて、今選択されている行から入力した数字の行までを一括  で作成する。  3つ目は、3行目から現在入力されている行すべてを一括で作成する。 ------------------------------- 上記のことをしたいと思っています。 よろしくお願いします。 駄文ですみません。 なお、エクセルは古いバージョンでエクセル2000です。

  • EXCELでコマンドボタンを使用したマクロ

    EXCEL2003を使用しています。 A列にプロジェクト名、B列以降の列にデータが入っています。 A列のプロジェクトについて、ランダムに担当者が10名います。その担当者名はどこのセルにも記載していません。必要ならば別シートに記載してもOKです。 担当者名の列をどこかに挿入し、その担当者名で並べ替えることはしません。 今あるシートを、各担当者がデータを入力し易くしたいのです。 例えば、マクロのコマンドボタンを使って、各担当者にIDをつけ、そのIDを入力後ボタンを押したら、A列のプロジェクトが抽出されるシートを作成したいのですが、 マクロを教えてください。 例) 【現在のシート】 A列(プロジェクト名)B列 C列  D列  … さかな       100  100  300  … 野菜        500  650  200  … くだもの      200  150   90  … 鍋         80   200  500  … 鉄板焼き      800  400  700  … : 【定義】 A氏担当プロジェクト=さかな、鍋 B氏担当プロジェクト=野菜、鉄板焼き C氏担当プロジェクト=くだもの ID A氏=111 B氏=222 C氏=333 【作成したいシート】 111を入力後、コマンドボタンを押したら、 A列(プロジェクト名) B列  C列  D列  … さかな        100  100  300  … 鍋          80   200  500  … が抽出される。 解りにくいかもしれませんが、ご回答の程よろしくお願いいたします。

  • エクセルのフォームのボタンにハイパーリンクを設定

    エクセルのフォームのボタンにハイパーリンクを設定 したい場合はどうすればいいのでしょうか? ボタンを押せば、メールを送信するように 設定したいのですが、 今はオートシェイプで設定しています。 ハイパーリンクで設定しようと思っても ボタンを選択すると、ハイパーリンクの色が消え 選択出来ない状態です。

  • EXCELのマクロで困ってます。

    EXCELのマクロで困ってます。 今EXCELでデータを処理しているのですが、 データが膨大にあり、処理するのにすごく時間がかかっています。 そこでマクロで何とかできないかと思っています。 EXCELに詳しい方のマクロ作成方法について教えてください。 質問内容は 画像の まずはB列の:の後ろにC列、D列、E列の文字を挿入し、それを次の列、次の列と進めていきたいのですが 可能でしょうか? それに開始ボタンと終了ボタンを作って 3人で作業したいと思っています。(後の二人はあまりマクロを知らないので簡単に動作させたい) コピペでは間に合わなく、ホントに困ってます。 よろしくお願いいたします。

  • エクセルのユーザーフォームのマクロ内でコマンドボタンを作成する

    エクセルのユーザーフォームで、読み込んだときにコマンドボタンを作成する方法を教えてほしいです。 通常は、先にユーザーフォーム内でボタンを作成して、キャプション等を設定すると思うのですが、ボタンの数が決まっていないので、フォームを読み込むたびにボタンの数を変えたいと思っています。 似たようなことでは、先にボタンを作っておいて可視、不可視にしようかとも思ったのですが、あまりそれはやりたくないです。 よろしくお願いします。 環境は、XPでエクセルは2003です。

専門家に質問してみよう