[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『同じセルに違う内容を書き込むには・・・』(ルル)
例えばA1のセルに1と入力したとき同じA1のセルに"黒"と、2と入力したときは"白"と文字列を表示する方法を教えてください。
回答ではないですが、なぜそのようなことをされたいのでしょうか。
入力を簡単にするだけならば、入力規則って方法もありますけど。 (川野鮎太郎)
表示形式で出来ないことも無いようですが、私だったら以下のようなことで対処すると思います。
入力は1,2で行い、入力が終わったら置換えで1は黒、2は白など。
(川野鮎太郎)
参考までに。 表示形式であれば、このようなことでしょうか。 [=1]"黒";[=2]"白";G/標準
(川野鮎太郎)
川野さん、連絡遅くなりましたがアドバイスどうもありがとうございます。
早速やってみました。セルの書式設定のユーザー設定の種類でこの内容をセットするのだと思いますが、[=1]"黒";[=2]"白";をセットしたらうまくいきました。ただこの後に
、[=1]"黒";[=2]"白";[=3]"茶";[=4]"赤";とセットしたときは入力した表示形式が正しくないというエラーが出てしまいました。理由がわからないので、教えていただけないでしょうか。お願いいたします。(ルル)
にゅにゅにゅ!まだ諦めてなかったんですね(^_^A; こちらに参考になるみやほりんさんのコメントがあります。 [[20041105165045]] 『勤怠管理について』(理解力がありません)
(川野鮎太郎)
うぬぬぬう、鮎太郎さん、速い! 表示形式の;(セミコロン)で分けられたセクションで条件付けできるのは 最初の2セクションまで。 それに全部でも4セクションだからあまり多くの設定はできません。 「入力は簡単に、なおかつ表示は多様に」を実現するなら、やはり 入力セルと表示セルを分けて関数による表示が適。 =CHOOSE(A1,"黒","白","茶","赤") セル分けを嫌うならマクロになってしまいます。 (みやほりん)
(* ̄σー ̄)ゞへへ♪速さだけはまけません!^^v (川野鮎太郎)
ツール、オートコレクトとして、修正文字列と修正後の文字列にそれぞれ、 ++1 → AA ++2 → BB ++3 → CC ++4 → DD ++5 → EE … … などと登録しておく方法もありますね。こちらは、大分登録できます。 (LOOKUP)
私も同じようなことをしたくてこんなのを作って使ってます。 ただVBA初心者なのでベテランの方から見たら無駄が多いコードかもしれません・・・。 もし直せるところがあったら直してください。 例:B2からB10の範囲 Private Sub Worksheet_Change(ByVal Target As Range) Dim c1, r1 As Long
Select Case Target.Row Case 2 To 10 Select Case Target.Column Case 2
r1 = Target.Row c1 = Target.Column
If Cells(r1, c1) = "1" Then Cells(r1, c1) = "黒" End If
If Cells(r1, c1) = "2" Then Cells(r1, c1) = "白" End If
If Cells(r1, c1) = "3" Then Cells(r1, c1) = "赤" End If
If Cells(r1, c1) = "4" Then Cells(r1, c1) = "茶" End If
End Select End Select
End Sub (miu)
出来るだけ元の書き方を尊重した上でまとめます。 Private Sub Worksheet_Change(ByVal Target As Range) Dim c1 As Long, r1 As Long Select Case Target.Row Case 2 To 10 Select Case Target.Column Case 2 r1 = Target.Row c1 = Target.Column If Cells(r1, c1) = "1" Then Cells(r1, c1) = "黒" ElseIf Cells(r1, c1) = "2" Then Cells(r1, c1) = "白" ElseIf Cells(r1, c1) = "3" Then Cells(r1, c1) = "赤" ElseIf Cells(r1, c1) = "4" Then Cells(r1, c1) = "茶" End If End Select End Select End Sub
変更点 ・変数の宣言時、各型を明記(以前の書き方ではc1はVariant扱い) ・個別にIfを記述すると各If文を全てチェックし冗長なのでElseIfと書き換え。 ・インデントを調整 参考:ライブラリより (e1pw)VBA字下げとIF文Win https://www.excel.studio-kazu.jp/lib/e1pw/e1pw.html (ご近所PG)ちょい修正
ありゃまぁ、、皆さん早いですねぇ。。 せっかくかいたので、私なら、、ということでアップしておきます。 Option Explicit Private Sub Worksheet_Change(ByVal Target As Range) If Intersect(Target, Range("B2:B10")) Is Nothing Then Exit Sub If Target.Count > 1 Then Exit Sub Application.EnableEvents = False With Target Select Case .Value Case 1 .Value = "黒" Case 2 .Value = "白" Case 3 .Value = "赤" Case 4 .Value = "茶" End Select End With Application.EnableEvents = True End Sub (SoulMan)
私も便乗で勉強になりました。m(__)m ありがとうございます。 (miu)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.