特定のセルに数字を入力すると特定の文字を表記VBA

このQ&Aのポイント
  • セルG9には「ドラム缶   缶」と表記されています。ここに数字のみを入力すると「ドラム缶 〇 缶(〇は先ほど入力した数字)を自動表記し、「ドラム缶 〇  缶」と表記された文字をデリートボタン等で消したら、再び「ドラム缶   缶」と自動表記するVBAはありますか?
  • セルF9には、G9の「ドラム缶 〇  缶」の〇の数字に200を掛けて、「○○○L」と自動表記させたいのですが、どの様にVBAを書けば良いですか?G9が「ドラム缶   缶」と数字が表記されている時はF9も「   L」と空白表記させたいです。
  • セルG11には「20L缶   缶」と表記されています。ここに数字のみを入力すると「20L缶  〇 缶(〇は先ほど入力した数字)を自動表記し、「20L缶 〇  缶」と表記された文字をデリートボタン等で消したら、再び「20L缶   缶」と自動表記するVBAはありますか?
回答を見る
  • ベストアンサー

特定のセルに数字を入力すると特定の文字を表記VBA

(1)セルG9には「ドラム缶   缶」と表記されています。ここに数字のみを入力すると「ドラム缶  〇 缶(〇は先ほど入力した数字)を自動表記し、「ドラム缶 〇  缶」と表記された文字をデリートボタン等で消したら、再び「ドラム缶   缶」と自動表記するVBAはありますか? セルF9には、G9の「ドラム缶 〇  缶」の〇の数字に200を掛けて、「○○○L」と自動表記させたいのですが、どの様にVBAを書けば良いですか?G9が「ドラム缶   缶」と数字が表記されている時はF9も「   L」と空白表記させたいです。 (2)セルG11には「20L缶   缶」と表記されています。ここに数字のみを入力すると「20L缶  〇 缶(〇は先ほど入力した数字)を自動表記し、「20L缶 〇  缶」と表記された文字をデリートボタン等で消したら、再び「20L缶   缶」と自動表記するVBAはありますか? セルF11には、G11の「20L缶 〇  缶」の〇の数字と一緒の数字「○L」と自動表記させたいのですが、どの様にVBAを書けば良いですか?G11が「20L缶    缶」と数字が表記されていない時はF11も「   L」と空白表記させたいです。 (3)セルG29には「        L」と表記されています。ここに数字を入力すると「   〇     L(〇は先ほど入力した数字)を自動表記し、「    〇    L」と表記された文字をデリートボタン等で消したら、再び「        L」と自動表記するVBAはありますか? セルF29には、G29の「        L」と全く一緒に連動した文字(ここでは「        L」)を自動表記させたいのですが、VBAではどの様にすれば良いですか?

noname#247334
noname#247334

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

  • ベストアンサー
  • Nouble
  • ベストアンサー率18% (330/1783)
回答No.4

あのですね 態々VBA化する程ではない と、思うのです が、 でも尚、VBAの方がいい ですか? そうでも無い なら セルの書式設定中 其の表示形式で ユーザー設定を指定する すると、できます よ? http://homepage3.nifty.com/gakuyu/excel/userdefined_ex.html http://www.eurus.dti.ne.jp/~yoneyama/Excel/user_set.htm (1)、(2)、(3)、 「ドラム缶   缶」 此は "ドラム缶"######"缶";"ドラム缶"######"缶";"ドラム缶   缶";@ 「   L」 此は #####0"L";#####0"L";"   L";@ です 必要に応じて スペース、#、 此等を、加減してください

noname#247334
質問者

お礼

ありがとうございました。 参考になりました。

その他の回答 (3)

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.5

 その様な場合には、例えば(1)ですと、VBAを使ってF9セルに「400L」、G9セルに「ドラム缶2缶」と1つのセルに入力した値とは異なる文字列を含んだ表示に無理やり変えるのではなく、 F9セルに「400」、G9セルに「L」、H9セルに「ドラム缶」、I9セルに「2」と、J9セルに「缶」という具合に別々のセルに表示させる様にしておき、F9セルには =IF(ISNUMBER($I9),$I9*200,"") という様なワークシート関数を入力しておけば済む話だと思います。(勿論、列幅は適時調整しておきます)  もし、関数や、「L」、「ドラム缶」、「缶」等を書き換えられるのが嫌な場合には、関数やその他のレイアウト上必要となる記入事項を入力した後、I9セル、I11セル、I29セル、及び、「日付の入力欄」、「客先名の入力欄」、「油種の入力欄」、「単価の入力欄」、等々の後から入力する必要のあるセルに対して、「セルの書式設定」の[保護]において[ロック]のチェックを外しから、[シートの保護]を設定してしまえば良いと思います。  因みに、缶の数の入力欄はG11セルではなく、I11に変えた上で、F11セルには次の関数を入力されると良いと思います。 =IF(ISNUMBER($I11),$I11*20,"")  又、「油量」を入力する欄はG29セルではなく、I29に変えた上で、F29セルには次の関数を入力されると良いと思います。 =IF(ISNUMBER($I29),$I29,"")

noname#247334
質問者

お礼

ありがとうございました。 参考になりました。

  • Chiquilin
  • ベストアンサー率30% (94/306)
回答No.3

> VBAはありますか? VBAは言語名。「マクロ」のことだとしても どこかに「ある」ものではなく誰か が「作る」ものです。 やろうとしていること自体は 別に難しいことじゃありません。マクロのチェンジ イベントを利用すればできます。というか全部同じ類の質問でしょう。 ただ入力表と出力表を分けて考えるということが どうしてもできない人が多いで すね。紙時代の発想からどうしても頭を切り替えられない。 何故 マクロ限定なのか。何故 他の手段ではいけないのか。何故 そんな不便極ま りない表の作り方にこだわるのか。疑問だらけです。 ただ表を作るというだけの ことに 何故マクロが必要なのでしょう。

noname#247334
質問者

お礼

ありがとうございました。 参考になりました。

  • kuma56
  • ベストアンサー率31% (1423/4528)
回答No.2

ダラダラと書いてあるけど、(1)も(2)も(3)も、 ・とあるセルに文字列が表示されていて、そのセルに数値を入力すると、もともと表示されていた文字列と入力した数値を一緒に表示したい。 ・そのとあるセルの下のセルに入力した数値を200倍してLを付けて表示したい。 ・この二点をマクロで処理したいがVBAの記述が判らない って事でいいのか? とあるセルに文字列が表示されていて・・・・って事はセルに入力するとマクロが動くようにしたいんでしょう?? "セルに入力するとマクロが"をキーワードにしてweb検索したら http://www.asahi-net.or.jp/~zn3y-ngi/YNxv9c7.html このようなサイト↑が見つかったけど、このアレンジじゃダメなのかい?? 200倍してLを付けて表示・・・・これならマクロを使わずに関数式でできると思うがそれじゃあだめなのかい?? ダメだとしたらその理由は何?? エクセルを便利に使いたいと思ったら、まずweb検索してヒントを探して見てちょ! 解説しているwebサイトは沢山あるから、解決の糸口が見つかるかもしれないし、ここのようなサイトで回答を待つだけより早く問題が解決が早くなることもあるよん!!

noname#247334
質問者

お礼

ありがとうございました。 参考になりました。

関連するQ&A

  • 特定のセルに文字入力すると左端に「・」を自動表記

    エクセル2003を使用しています。 セル”E3~E128”と”I3~I128”の範囲で何か文字を入力すると、入力した文字の左端に自動で「・」を付けるVBAは、どの様にすれば良いのでしょうか。 例としてセルE3に「2015年」と文字を入力すると自動で「・2015年」と表記される感じです。

  • 空白のセルの場合は同じ文字を入力するVBA

    (1)セルL5・L6・L23・L24・L25があります。 上記で述べたセル範囲の文字が空白表示の場合、上記範囲の何処かに文字を入力したら、入力した文字と一緒の文字が自動で入力させます。(例えばL24に「1」と入力した場合はL5・L6・L24・L25に「1」と自動で入力) そして上記で述べたセル範囲の何処か1つでも文字が入っていると、文字が自動で入力されない(例えばL5に「3」と入力されている状態でL25に「8」と入力してもL6・L23・L24の文字は何も変化しない)VBAはどの様にすれば良いでしょうか? (2)セルM5・M6・M23・M24・M25があります。 上記で述べたセル範囲の文字が空白表示の場合、上記範囲の何処かに文字を入力したら、入力した文字と一緒の文字が自動で入力させます。(例えばM24に「1」と入力した場合はM5・M6・M24・M25に「1」と自動で入力) そして上記で述べたセル範囲の何処か1つでも文字が入っていると、文字が自動で入力されない(例えばM5に「3」と入力されている状態でM25に「8」と入力してもM6・M23・M24の文字は何も変化しない)VBAはどの様にすれば良いでしょうか? (3)セルL8~L10の範囲があります。 上記で述べたセル範囲の文字が空白表示の場合、上記範囲の何処かに文字を入力したら、文字が自動で入力させます。(例えばL9に「1」と入力した場合はL8・L10に「1」と自動で入力) 上記で述べたセル範囲の何処かに既に文字が入っていると、文字が自動で入力されない(例えばL10に「3」と入力されている状態でL8に「8」と入力してもL9の文字は何も変化しない)VBAはどの様にすれば良いでしょうか?

  • セルを空白にしたら「0(ゼロ)」を表記させる方法

    セルを空白にしたら「0(ゼロ)」を表記させる方法の質問です。 「F5~F38」「H5~H38」「J5~J38」「L5~L38」「N5~N38」「P5~P38」「R5~R38」「D6~D38」「E5~E36」「T5~T36」「U5~U38」の範囲のセルに数字や文字を入力します。 上記範囲のセルに入力した数字や文字を消して、空白表示にした場合は自動で「0(ゼロ)」と表記させる方法はあるのでしょうか?

  • 特定のセルに文字が入力されているページの印刷VBA

    エクセルVBAで質問が2つあります。 エクセルシートは改ページプレビューでページ毎の印刷範囲が見えるようになっています。 (1)コマンドボックスを押したらE4~E963又はB4~B963のセルに文字が入力されているページのみ印刷するVBAはどの様にすれば宜しいでしょうか? (2)コマンドボックスを押すとインプットボックスが表示され、その中に数字を入力したら、その入力されたページのみを印刷するVBAはどの様にすれば宜しいでしょうか?

  • 該当するセルの隣の数字を表示させる計算式

    「0,1,1.1,1.2,1.3,1.4,1.5,1.6,1.7,1.8,1.9,2,2.1,2.2,2.3,2.4,2.5,2.6,2.7,2.8,2.9,3」 の数字が順番にL2~L23に表示されています。 その隣のM2~M23には以下の数字が入力されています。 「2.89,3.39,3.44,3.49,3.54,3.59,3.64,3.69,3.74,3.7,3.8,3.89,3.9,3.99,4.0,4.0,4.14,4.19,4.24,4.29,4.34,4.39」 ※「,」は質問内容を分かり易くする為に数字を区切っているだけで、実際には表示されていません。 質問ですがセルF11に「0」を入力した場合、F13には「2.89」、セルF11に「1」を入力した場合F13には「3.39」、セルF11に「1.1」を入力した場合F13には「3.44」・・・と順番に表示する様にする計算式やVBAは、どのようにすれば良いでしょうか?

  • エクセルで数字を1文字ずつセルに入れたい

    エクセルでの質問です 1つのセルに例えば”1530”という数字を入力します そうすると その数字を分解して f1のセルに”0” e1のセルには”3” d1のセルに”5” c1のセルに”1” b1のセルに”¥”が自動的に入るようにしたいのですが どうすれば良いでしょう 数字は4ケタ~7ケタまで変わります よろしくお願いいたします。

  • 指定されたセルに文字を入力したら自動で大文字VBA

    エクセルVBAの質問です。 セルD10とD25に小文字の英数字を入力したら自動で大文字の英数字にするVBAはどの様にすれば宜しいでしょうか? (例) hhc-345→HHC-345     kUxR-678→KUXR-678     

  • エクセルで、セルに入力された文字を別なシートで数字

    エクセルで、セルに入力された文字を別なシートで数字で表すにはどうしたらいいのですか? いま、会社でエクセルVBAを使って表を作っています。 そこで、例えば、 Sheet2で、セルA1に○○会社 ~、セルA2に△△会社と入力したら、 Sheet1で、数字で、2 と表すには、どういう風に作ればいいのでしょうか?

  • 文字を入力すると違うシートに順番に表記する方法

    ①シート1のセルC5に文字を手動で毎回入力すると、シート2のセルB5から下の列に順番に文字を自動で転送するVBAなどはどの様にすれば宜しいでしょうか? ②シート1のセルC6に文字を手動で毎回入力すると、シート2のセルC5から下の列に順番に文字を自動で転送するVBAはどの様にすれば宜しいでしょうか? ③同じ様な法則でシート1のセルC7に文字を手動で毎回入力すると、シート2のセルD5から下の列に順番に文字を自動で転送、シート1のセルC8に文字を手動で毎回入力すると、シート2のセルD5から下の列に順番に文字を自動で転送とする場合はどの様にすれば宜しいでしょうか? ④シート1のセルC5、C6、C7、C8に文字を手動で入力すると同じシート1の左隣のセルB5、B6、B7、B8に入力した回数を自動で表記する方法はありますか?

  • VBAにてデータが数字か文字かを判定するには

    VBAにてデータが数字か文字かを判定するには、 どうすれば良いのでしょうか? 文字数は任意で決まっていません。 123 ← 数字 あい ← 文字 1F  ← 文字 G  ← 文字

専門家に質問してみよう