Excel (VBA)

Excel VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 10 Pro : Excel 2007)
入力候補の表示および代入
投稿日時: 18/03/14 10:23:19
投稿者: yohitoh
メールを送信

ある行(縦)には決まった5種類の単語が入ります。ですから入力補助として「下ボタン」のようなものをクリックすと候補の単語が現れ、選ぶとそのセルに代入されるようにしたいと思います。
初心者ですがよろしくお願いいたします。

回答
投稿日時: 18/03/14 14:23:33
投稿者: Suzu

こんにちは。
 
VBAは必要なく、入力規則で対応できそうです。
 
 
1. ≪ある行(縦)には決まった5種類の単語が入ります≫ の範囲のセルを選択しておき
2. リボンの、「データ」の「データツール」中【データの入力規則】から【データの入力規則】を選ぶ
3. 『設定』タブの 入力値の種類 から 【リスト】を選択
    【ドロップダウンリストから選択する】にチェックの入っている事を確認し、
  元の値 に、≪5種類の単語≫をカンマ区切りで入れます。
        仮に、A〜E の5種類を入れたいなら、元の値に、 A,B,C,D,E を設定します。
4. OK を押せば、 1で選択していた範囲のセルの一つをアクティブにしたタイミングで
  セルの右側に下方向の矢印が表れ、その矢印をクリックすると、A〜E を選べる様になっています。

投稿日時: 18/03/14 15:11:03
投稿者: yohitoh
メールを送信

Suzuさん、VBAを使用しないで解決しました。どうもありがとうございました。
 
ちなみに、VBAの場合にはどのようになりますか。VBAを勉強し始めたばかりなので教えていただけると助かります。
 

回答
投稿日時: 18/03/14 16:37:51
投稿者: Suzu

基本マクロは、手動でできる操作を自動化します。
 
Excelには、その手動操作の内容を、マクロのコードとして記録する機能があります。
 
マクロの自動記録ですね。
 
開発 - コード の [マクロの記録]
マクロ名を適当に決め、マクロの保存先を作業中のブックとし[OK]
そこから、記録が始まりますので、自動化したい操作を手動で行います。
 
操作が終わったら、[マクロの記録] があった位置が[記録終了]となっていますので
それを押すと記録が終わります。
 
あとは、VBEの画面で コードを確認してみましょう。
 
マクロの記録では、
すべての機能/設定を記録できる訳ではなく、また、余計な記録も含まれてしまいます
その事を頭の片隅に置いておいてください。
 
-----------------------------------------------------------------------------------
例えば、
A1 の値を 3へ書き換える操作を記録したとすると
 
Sub Macro1()
'
' Macro1 Macro
'
 
'
    Range("A1").Select
    ActiveCell.FormulaR1C1 = "3"
    Range("A2").Select
End Sub
 
となります。
 
内容は、
  A1を選択
  選択しているセルの数式を、3 に書き換える
  A2を選択(EnterでA2に移動した)
 
となっています。
 
が、値を書き換えるのであれば
 
Range("A1").FormulaR1C1 = "3"
または
Range("A1").Value = 3
で十分であり、
 
Select や、 ActiveCell の辺りは簡潔にできるのです。

回答
投稿日時: 18/03/14 17:00:41
投稿者: WinArrow
投稿者のウェブサイトに移動

マクロの記録を紹介してレスしましたが、
Suzuさんのレスと被ってしまったので削除しました。
 
VBAの勉強ということで、
考えておかなければけないことを書きます。
 
マクロを実行するには、何時、どのような形で実行するか(実行させるか)?
ということも重要なことです。
特に、マウロ作成者以外の人に
使わせようとする場合、その操作が分かりずらいと仕事の効率が下がります。
もう一つは、会社の仕事で使う場合、あなたが作成したマクロは、必ず誰かが引き継ぐことになります。
そのことも念頭に入れながら作成することも忘れないようにしましょう。

回答
投稿日時: 18/03/14 17:51:09
投稿者: WinArrow
投稿者のウェブサイトに移動

質問を読み直してみました。
 
>入力候補の設定・・・入力規則設定

>選択時の「値」をセルいに代入
を一緒のマクロにしてはいけません。
 
極端にいうと
入力規則は、1回だけ実行します。
「値」をセルいに代入は、マクロ不要です。
 
 

投稿日時: 18/03/14 17:57:01
投稿者: yohitoh
メールを送信

Suzuさん、WinArrowさん、どうもご回答下さいまして有難うございます。
 
「Macroの記録」の操作でMacroが完成できました。うれしいです。
Validationというオブジェクトを使うということがわかりました。
おいおい勉強いたします。