Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


13105 / 13646 ツリー ←次へ | 前へ→

【6981】数字を文字で表示 もだ 03/8/18(月) 17:43 質問
【6982】Re:数字を文字で表示 ichinose 03/8/18(月) 18:00 回答
【6988】Re:数字を文字で表示 もだ 03/8/19(火) 11:40 お礼
【6990】Re:数字を文字で表示 もだ 03/8/19(火) 11:55 質問
【6997】Re:数字を文字で表示 ichinose 03/8/19(火) 17:57 回答

【6981】数字を文字で表示
質問  もだ  - 03/8/18(月) 17:43 -

引用なし
パスワード
   こんにちは。
早速ですが、セルに数字を入力しその表示を「文字」にしたいのですがどなたかご存知の方はおりませんか?
例えば 1を入力すると → 当月、2を入力すると → 翌月の表示にしたいのです。
理由はそのセルを数式で使用したいからです。

【6982】Re:数字を文字で表示
回答  ichinose  - 03/8/18(月) 18:00 -

引用なし
パスワード
   ▼もだ さん:
こんにちは。

>早速ですが、セルに数字を入力しその表示を「文字」にしたいのですがどなたかご存知の方はおりませんか?
>例えば 1を入力すると → 当月、2を入力すると → 翌月の表示にしたいのです。
>理由はそのセルを数式で使用したいからです。

上記二つだけでよいなら、
セルの書式設定で、
表示形式のユーザー設定を
「[=1] "当月";[=2] "翌月"」とすれば可能です。
条件設定はいくつもできませんが・・・。

【6988】Re:数字を文字で表示
お礼  もだ  - 03/8/19(火) 11:40 -

引用なし
パスワード
   ▼ichinose さん:

有り難うございました。
助かりました。
また宜しくお願いします!

>▼もだ さん:
>こんにちは。
>
>>早速ですが、セルに数字を入力しその表示を「文字」にしたいのですがどなたかご存知の方はおりませんか?
>>例えば 1を入力すると → 当月、2を入力すると → 翌月の表示にしたいのです。
>>理由はそのセルを数式で使用したいからです。
>
>上記二つだけでよいなら、
>セルの書式設定で、
>表示形式のユーザー設定を
>「[=1] "当月";[=2] "翌月"」とすれば可能です。
>条件設定はいくつもできませんが・・・。

【6990】Re:数字を文字で表示
質問  もだ  - 03/8/19(火) 11:55 -

引用なし
パスワード
   >▼ichinose さん:
1=当月、2=翌月、3=翌々月と3つ指定したいのですがエラーが出ます。
3つは不可能なのですか?


>>上記二つだけでよいなら、
>>セルの書式設定で、
>>表示形式のユーザー設定を
>>「[=1] "当月";[=2] "翌月"」とすれば可能です。
>>条件設定はいくつもできませんが・・・。

【6997】Re:数字を文字で表示
回答  ichinose  - 03/8/19(火) 17:57 -

引用なし
パスワード
   ▼もだ さん:
こんにちは。
>1=当月、2=翌月、3=翌々月と3つ指定したいのですがエラーが出ます。
>3つは不可能なのですか?
書式設定を「[=1] "当月";[=2] "翌月";"翌々月"」とすれば、
3で「翌々月」と表示されますが、4でも5でも「翌々月」と出てしまいます。
それでもよければ、この方法で・・・・。

「もっと条件が沢山ある」というなら、VBAでシートのChangeイベントを
使えば可能だと思います。
対象セルをSheet1のセルB1としましょう。
仮に
0-前月 1-当月 2-翌月 3-翌々月 4-翌翌々月(普通言いませんね)
と表示する事にします。
Sheet1のモジュールで
'==========================================================
Private Sub Worksheet_Change(ByVal Target As Range)
  Dim rng As Range
  Dim frm
  frm = Array("前月", "当月", "翌月", "翌々月","翌翌々月")
  For Each rng In Target
    If rng.Address = Me.Cells(1, 2).Address Then
     With rng
       If .Value <> "" And Val(.Value) >= 0 And Val(.Value) <= 4 Then
        .NumberFormat = frm(Val(.Value))
       Else
        .NumberFormat = "general"
        End If
       End With
     End If
    Next
End Sub
とすれば、表示できますが・・・・。

詳しい内容をお聞きしているわけではありませんから一概には言えませんが、
セルA1にコード(0とか1とか2)を入力させ、セルB1にそれに対応する文字列(
当月とか翌月)を入れるという方法ではいけないのですか?
セルB1には、「=choose(a1,"当月", "翌月", "翌々月")」と入れておけば対応する
文字列が表示されます(関数であれば、他にも方法は色々あります)。

他のセルで数字として使いたい場合は、セルA1を参照する。
1とか2とか表示されるのが気になるなら文字の色を背景と同化させてしまう。
これがいちばん簡単な方法だと思うのですが、いかがでしょうか?

13105 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free