• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Excelで、プログラマブルキーボードのマクロ)

Excelでプログラマブルキーボードのマクロを使用する方法

このQ&Aのポイント
  • Windowsのエクセルで、プログラマブルキーボードのようなことがしたいのですが、その方法について教えてください。
  • 指定したキーを押すだけで指定した文字が入力されるような方法を知りたいです。
  • 特定の「ABC」などを入力すると、別のセルに対応する文字が表示される方法も教えてください。

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

  • ベストアンサー
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.1

こんばんは! VBAでの方法になってしまいますが・・・ 一例です。 かならず大文字で入力するとします。 画面左下にある操作したいSheet見出し上で右クリック → コードの表示 → VBE画面が出ますので、 ↓のコードをコピー&ペーストしてA~Cのアルファベットを入力してみてください。 Private Sub Worksheet_Change(ByVal Target As Range) 'この行から Select Case Target Case "A" Target = "外勤" Case "B" Target = "出張" Case "C" Target = "待機" End Select End Sub 'この行まで 尚、すべてのセルでChangeイベントが発生してしまいますので、 特定のセル限定であれば少しコードを修正する必要があります。 参考になれば良いのですが・・・m(__)m

bullfrog
質問者

お礼

ありがとうございます。期待していたとおりの機能です。 これでやるとなると、マクロの勉強ですね…(^^;)

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.2

マクロのご質問ですから,マクロの付け方ははご存じということですね。 まぁ念のためお話ししておくと標準モジュールに記載します。 Sub auto_open() Application.OnKey "a", "macro1" Application.OnKey "b", "macro2" Application.OnKey "c", "macro3" End Sub Sub auto_close() Application.OnKey "a" Application.OnKey "b" Application.OnKey "c" End Sub Sub macro1() Selection = "外勤" End Sub Sub macro2() Selection = "出張" End Sub Sub macro3() Selection = "待機" End Sub 以上のマクロを登録しておき,ブックを保存して閉じて開き直すと,各キーを押すだけで文字が入ります。 ただし,日本語入力(IME)が動いているとそちらがエクセルより先にキーを先取りするので,直接入力にしておく必要があります。(言い換えると,日本語入力途中に勝手にマクロが「外勤」とかに書き換えるといったことは起こりません) 必要なら事前に各シート各セルについて,入力規則を使って日本語入力を「オフ」しておく設定を付けておいてマクロの使用に備えるのもOKです。 >良い方法 思いついた人はこういう自動入力を良い方法と思って思いつくのでしょうけど,実際に使うヒトにはどう思われるかは多少疑問が残るように感じます。 たとえばデータメニュー(データタブ)の入力規則の「リスト」を付けておいて 外勤,内勤,出張,休暇 から選択できるよう各入力セルに仕込んでおくなどが,(多分皆さんにも馴染みのある)ごくふつーに使われる手法です。

bullfrog
質問者

お礼

ありがとうございます。 マクロはこれから勉強することになるのですが、案外簡単に機能を付けられそうで、安心しました。 プルダウンで選ぶ方法も考えたのですが、実は選択肢が20程度になり、それを200程度次々入力していくことにあります。 そのため、頭文字などのキーで覚えてもらってスピーディに入力できる方法を考えています。 また、現行のプログラムもそのように頭文字のキーで入力していく方法をとっておりますので…。 お気遣いありがとうございます。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • エクセル関数若しくはマクロについて

    エクセルで A1に数字を打ち込み1なら10 2なら14・・・ といったように変換してくれるようにしたいのですが、 1と打った下のセルを10にするならVLOOKUPを使って出来ると 調べたのですが、 1と打ったセルの所を10と表示させるようにするには どのような関数を使うべきなのでしょうか? もしくはマクロを組まないの出来ないなのでしょうか?

  • Excel 2003 キーボード操作

    お世話になります。 表題の件で ご相談が御座います。 Excelのデータベースに3000件程のデータがあります。 同じようなファイルが もう1つあり「Ctrl」+「F」等で1件1件照らし合わせてチェックしています。 (入力担当者が違うのでスペースが入っていたり、カタカナだったりで「VLOOKUP」が使えません) その際に セルを塗り潰してチェックしているのですが、中には数十件まとめて塗り潰せる場合もあるので 「Ctrl」+「PageDown」等で複数選択し、塗り潰したりしています。 そこで お聞きしたいのが「縦に複数選択しているセルの一番下にカーソルを持って行く方法(キーボード操作で)」です。 列をまたがって範囲選択することはないのですが、1列で複数範囲選択することは多々あります。 1つのモニターでウィンドウを並べて作業しているので数十件範囲選択していると元々のセルの位置(?)は遥か彼方上の方にあります。 現状では 目に見える範囲に最後の行があるので「その下をマウスでクリックして解決」としています。 これをマウスを使わずにキーボードの操作のみで実現は出来ないものでしょうか? お手数では御座いますが、宜しくお願い致します。

  • エクセルでマクロを自動的に実行

    表題の通りなんですが、エクセルで、あるセルに指定された数値(語句)が入った場合に、それを自動的に感知して実行するマクロがあればと思うのですが、そういったことってできるのでしょうか。 具体的には、  1、バーコードリーダーで数値をセルに入力  2、その数値に対応する名前をvlookup関数にて表示  3、その名前が入力された時点でマクロが自動的に実行 と言うものです。  3の部分がよく分からずに困っています。できるかどうか分かりませんが、もしできるようであるならその方法を教えていただければありがたいです。どうか、よろしくお願いします。

  • EXCELのVLOOKUPを有用に使いたいのですが

    すみません。どなたか教えてください。 たとえばA1のセルに以下の値があったとします。 <abc>1<abc> このうちの1の部分をA2のセルに表示したいときは=MID(A2,6,1)で表示できました。別のシート(仮にsheet2)に例えばA行に1から昇順に番号が振られていてB行にデータが入っていたとします。VLOOKUPを使ってsheet2のB行を表示したいときは=VLOOKUP(A2,Sheet2!A:B,2,FALSE)でできると思ったのですがエラー表示になってしまいました。A2のセルを更にコピーして例えばA3に形式を選択して貼り付けで値を選択して1を表示してから=VLOOKUP(A3,Sheet2!A:B,2,FALSE)をするとB行の値が表示されるのでA2は1とみなされてないということになるかと思うのですが、A2内で1とみなすようにできる関数はないでしょうか?

  • Excelでの文字列の結合

    Excelで文字列を結合したいのですが、可能でしょうか? 例えば、セルA1に「abc」、セルB1に「def」と入力し、 それをセルC1に「abcdef」と表示させたいのです。 方法がわからなかったので、 一度txtファイルに変換して保存し、 表示する時にスペースで区切らないようにし表示させたのですが、 うまくいきません。 表示は「abcdef」とキレイに表示されるのですが、 検索コマンドで「abcdef」と入力しても検索されません。 ですので、VLOOKUPなどの関数が使用出来なくて困っています。 どのようにすればいいのでしょうか? よろしくお願いします。

  • Excel 2003のマクロについて

    セルにある文字列に”-”を加え、別のセルに移したいです。 例/ABCDEFGHIJ→ABC-DEFGH-IJ としたいです。 文字列の“-”の入る位置は、「例/」の位置で固定です。 Excel2003を使用しています。 マクロ等で一発変換できる方法はありますか? マクロ初心者なので、教えて下さい。宜しくお願い致します。

  • エクセルの関数について教えてください

    エクセルでvlookupを使い得た結果がAだとします。 次にif関数でvlookup関数の結果のセルがAならばと言う式を作りました。 が、if関数が認識してくれません。 同じif関数の式でキーボードからAを入力したら結果が出ます。 vlookup関数のセルにはAでなく式しか入ってないからでしょうか? vlookup関数の結果をif関数で認識する方法をお願いします。

  • ACCESSのマクロ?

     ほとんど初心者なので、難しいことを教えていただいてもわからないのですが、Excelで他のシートのセルを引用するのに、 =VLOOKUP(A1,[ABC]Sheet1!$A$1:$D$19,4,FALSE)  こんな感じのマクロを書きます。 これと同じことをaccessでしたいのですが、VBAで書かないと無理なのでしょうか?  accessは、テーブルをたくさん使ってクエリで処理するようですが、excelで慣れてしまっているので、理解できなくて困っています。よろしくお願いします。

  • 入力されたキーボードの判断

    お世話になっています。 只今VCで、USBによって2つのキーボードが繋がっていて、それぞれ独立した入力を受け付けるようなアプリを作成したいと思っています。 例えばですが、2つのテキストボックスを上下に配置し、Aというキーボードから「ABC」と入力すると上のテキストボックスに「ABC」と表示し、Bといキーボードから「123」と入力すると下のテキストボックスに「123」と表示されるようなイメージです。 または、テキストボックスが1つだけで、Aというキーボードから入力を受け付けるが、Bというキーボードからの入力は受け付けないというイメージです。 入力されたキーボードのデバイスポート等が分かれば実現が可能かなと考えているのですが、調べてもその方法が分からなかったため、どなたかアドバイスを頂けないでしょうか? (そもそも、そんなことは実現不可だという場合もご指摘願います。)

  • エクセル VLOOKUP関数IFERRORと組み合

    ExcelのVLOOKUP関数でエラーのときは空白にする方法で紹介されているモノに セルに「=IFERROR(VLOOKUP(D2,A2:B6,2,FALSE),"")」を入力して、Enetrを押します。 とありますが、この場合、VLOOKUP関数の前に、実際にキーボードで=IFERRORと打ち込みますか? 簡単にできる方法があれば教えて下さい。

専門家に質問してみよう