アプリ版:「スタンプのみでお礼する」機能のリリースについて

無理だし、意味がないとわたしは思うのですが。依頼されたので、どなたか相談にのってください。

EXCELで、例えば、キーボードで、セルA1に「1」と入力したら、結果として、「あ」とセルA1に入力されるような方法を探っています。

VBAを工夫すればいいのかもしれませんが、スキルがありません。
関数でも、やってみましたが、入力値「1」が必ずどこかに残りますよね。
よろしくお願いします。

A 回答 (7件)

対象となるレンジを実情に合わせて


該当シートのモジュールに貼り付けてください。

Private Sub Worksheet_Change(ByVal Target As Range)

With Target
If .Row <=3 Or .Row >= 35 Then Exit Sub
If .Column = 1 Or .Column >= 12 Then Exit Sub

Application.EnableEvents = False

Select Case .Value
Case 1
.Value = "あ"
Case 2
.Value = "い"
Case 3
.Value = "う"
Case 4
.Value = "え"
Case 5
.Value = "お"
End Select

Application.EnableEvents = True

End With

End Sub

この回答への補足

ありがとうございます。
素人で申し訳ないのですが、VBAの画面を開き、VBAプロジェクトのsheet1の定義画面に貼り付ける方法でいいのでしょうか?

まことに申し訳ないのですが、初心者ゆえ、せっかくのご回答、どうすればいいのかご教示お願いします。

補足日時:2008/08/20 11:18
    • good
    • 0

入力可能な個数は限定されますが、セルの書式設定→ユーザー定義にて



[=1]"あ"

と入力すると、表示変換されます。
    • good
    • 0

別案として、お使いのIME(MS-IMEやATOKなど)に単語を辞書登録して、


例えば、『1』を入力して変換処理したら“あ”と確定してしまうって
手もあるかと思いますが・・・

VBAはおっしゃる通り貼り付けて試して見てください。

対象となるセル範囲は

With Target
If .Row <=3 Or .Row >= 35 Then Exit Sub
If .Column = 1 Or .Column >= 12 Then Exit Sub

この部分を修正して下さいね。
大体ニュワンスで分かりますよね。

Case 1
.Value = "あ"

この部分もきっと想像がつくと思いますが、あとで編集出来るように
説明を聞くよりご自分で色々試して見てください。

「エクセルでは無理・・・」って表題に魅かれてしまいました。^^;
    • good
    • 0

こんにちは。



私は、VBA中心の回答者ですが、いつも思うことですが、「お遊び」ではない以上、何かの目的があってなされるものであって、お年より向けとか、いろんな理由はあります。

ただ、#1さんのご指摘にも通じますが、私は、あまりに依頼者に沿ったものにすると、とんでもない底なし沼に落ち込む可能性があるので、それは、妥協案なり、折衷案なり、または、依頼を断るなどしていかないといけないように思います。

基本的には、個人の思いつきのようなものには、いくらお金を貰っても、自分の技術以上の依頼を請けないことにしています。(ビル・ゲーツ氏のように、自分にはまったく技術力がなくても、他人のものを拝借すればよいと言う人もいます。それも一理はあるかもしれません。)

時に、依頼者は、思い付きから、とんでもないことを言ってくる人がいます。ここの掲示板にも、そういう困った方が時々出てきます。

一般的に、入門レベルの人が、「(入力等を)楽にする」という目的のものは、絶対にしないほうがよいです。それと、マクロですが、セル上で本当に実現するのは難しいかなって思います。それは、キーそのものを監視しているわけではないので、「数字 : 文字」の一対一は別として、キー自体を入れ替えるようにしないと、少し、難しいような気がします。
    • good
    • 0

ANo.1です。



>例えば、キーボードで、セルA1に「1」と入力したら、結果として、「あ」とセルA1に入力されるような方法
例えば上記条件でコードを書いたとして、ご自身で編集は出来ますか?
更に条件(置換の組み合わせ)がどの程度あるのか不明ですが。。。
    • good
    • 0

かなり無理やりですが、オートコレクトを利用すれば


できないことはないです。
ただ、ファイルごとに設定ではなく、PCごとに設定になってしまうので、
使い勝手の面でどうかな、と思いますが。

Excel2007なら、
(Microsoft Office ボタン) をクリック→[Excel のオプション] [Excel のオプション] ダイアログ ボックスで、[文章校正] をクリック
[オートコレクトのオプション]で、
「修正文字列」に「1」、「修正後文字列」に「あ」とすれば、
「入力中に自動修正する」にチェックが入っていれば、
「1」と入力→「あ」と入力されます。

あとはおっしゃる通り、VBAですかね。
入力するたびに変換するのか、保存前とかに一気に変換するのか、
で方法は変わるかもしれません。
保存前にというなら、「置換」をマクロにすれば、簡単ですね。
    • good
    • 0

VBAで出来るかも知れないです。

(条件によるかも知れませんが)

>意味がないとわたしは思うのですが。
>VBAを工夫すればいいのかもしれませんが、スキルがありません。
意味があるかどうかは依頼者さんと質問者さんにしかわかりません。
その事をまずは相談されては?
    • good
    • 0
この回答へのお礼

早速の回答ありがとうございました。
回答のオートコレクトのイメージで、入力値が変換されるのが、入力時点で可能にする要件です。
オートコレクト機能ではやはり、他にも影響を与えるなどちょっと対応方法としては採用できないため、どなたか、具体的なVBAイメージをご教示いただければ幸いです。

お礼日時:2008/08/20 11:00

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!