- ベストアンサー
Excel 全角数字を半角に
Excelデータに数値とハイフンを全角で入れて送ってきます・・・ 例: 今日111-111-111 明日222-222-222 これを入力時に 今日111-111-111 明日222-222-222 の様に半角に自動変換出来れば助かります。 「今日」や「明日」等を削除しても構わないので 可能でしょうか? 方法をわかり易く教えて下さい。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。 個人用マクロブックに入れて、ツールボタンにマクロを設定してください。 個人用マクロブックが作られていない場合は、最初に、記録マクロで、「個人用マクロブック」を指定して、セルをクリックすれば作られます。その後、そのマクロを探して、削除して、以下のコードを登録します。 メニュー-表示-ツールバー-コマンド[タブ] 分類-マクロ ユーザー設定ボタン(にこちゃんマーク)->ドラッグ->ツールバー 選択したボタンの編集(M) -マクロの登録-設定 [にこちゃんマーク]で以外にも、イメージの編集で変更が可能です。 [標準モジュール] --------------------------------------------- Sub TwoByteCharAltering() Dim c As Variant Application.ScreenUpdating = False On Error GoTo ErrHandler If WorksheetFunction.CountA(ActiveSheet.Cells) > 0 Then For Each c In ActiveSheet.UsedRange.Cells If VarType(c.Value) = vbString Then c.Value = StrConv(c.Value, vbNarrow) End If Next c End If Application.ScreenUpdating = True ErrHandler: If Err.Number > 0 Then MsgBox Err.Number & ": " & Err.Description & vbCrLf & _ "エラーが発生しました。: " & c.Address End If End Sub ------------------------------------------ もう少し、半角変換の内容が複雑な場合は、またご相談ください。
その他の回答 (5)
- Wendy02
- ベストアンサー率57% (3570/6232)
こんばんは。 >初心者なら、 >「マクロでのデータの受け渡しは避けた方が良い」 私が書いたのかしら?少なくとも、直接、naokitaさんには書いていないようです。 「マクロでのデータの受け渡し」という状況や内容にもよるのではないかと思います。その答えは、「イエス」とも「ノー」とも言えないですね。とかく、Excelマクロは、へたくそなものもあれば、プロ級のものもありますから、闇雲に他人のマクロをお使いになるのは、私もお勧めしません。大事な資料に対してならなおさらです。 今回は、その内容の状況を判断して、マクロを書きました。ただし、#1,#2の補足欄で書いたような自動でというのは、できないとは言いませんが、そればかりは少し負担が大きすぎます。今回のは、ボタンをクリックして、一括変換マクロというイメージで作りました。 今回のマクロは、一応、可能な範囲の安全性を考慮はしております。ただ、それを無理強いすることはしません。手間を惜しまず、関数で処理したほうが早い場合も往々にしてあります。一度、試してみるに損はないとは思いますが。
お礼
マクロの受け渡しのついては、知人の専門家?に聞いただけです。 そのせいもあってか、 当方素人なので、昔から避けていました。 大変ありがとうございました。
- syn-niko2
- ベストアンサー率42% (9/21)
ん? 送信相手がどう入力してもそのセルには半角で入るようにってことですか?
補足
今日111-111-111 明日222-222-222 等では手間なので ---------------------- 今日111-111-111 明日222-222-222 もしくは、 111-111-111 222-222-222 ---------------------- 等の状態でこちらに届いて欲しいのです。 そのため入力時に最初から半角に変換して送って欲しいのです。
- syn-niko2
- ベストアンサー率42% (9/21)
今日・明日を削除しても構わないのなら、入力したい範囲を選択しておき、 メニュー「データ」→「入力規則」を選択 「日本語入力」タブの「半角英数字」を選択して「OK」ボタンをクリック これで、半角入力になると思うのですが?
お礼
便利な機能を欲張りすぎました。反省 しばらくは、現状で対応しておきます。 大変お手間をお掛けいたしました・・・
補足
通常その設定なので、全角数字のみなら半角になります。 送信相手が勝手に入力してくる場合、 日本語やハイホンを入れられるとお手上げです・・・
- gimpei
- ベストアンサー率33% (262/782)
最初の「今日111-111-111」がエクセルの番地で”A1”に あるとして、”A2”に希望されている形を出力するとして、 A2のセルに =ASC(A1) と入力すれば表示は出来ています。 「明日222-222-222」以降はA2をコピーするだけです。 ただし、関数による表示なので、普通に文字として使用するのであれば さらにA2からA3にコピーするなどの方法になりますが、その際に 右クリックメニューの「形式を選択して貼り付け」の「値」を選んで 実現します。
お礼
便利な機能を欲張りすぎました。反省 しばらくは、現状で対応しておきます。 大変お手間をお掛けいたしました・・・
補足
A1入力時にA1に反映したい A2やB1には簡単に出力出来るのだからA1に直に反映も簡単に! と素人考えなのですが、どうなのでしょう?
- kakmom
- ベストアンサー率66% (2/3)
仮に、今日111-111-111 をセルA1にコピー&ペーストで貼り付け、セルB1に 今日111-111-111 と出力させるだけではだめですか? それで良ければ、セルB1に数式 =ASC(A1) を入力すれば良いと思います。
お礼
便利な機能を欲張りすぎました。反省 しばらくは、現状で対応しておきます。 大変お手間をお掛けいたしました・・・
補足
ありがとうございます。 「A1からB1に」でも良いんですが、セルが増えるので 出来れば A1に全角英数記入時にA1内で反映させたいのです・・・
お礼
便利な機能を欲張りすぎました。反省 しばらくは、現状で対応しておきます。 大変お手間をお掛けいたしました・・・
補足
詳しい説明ありがとうございます(マクロは利用しておりません) 以前、「マクロでのデータの受け渡しは避けた方が良い」 (マクロ初心者なら)と聞き一切避けてきました。 マクロ以外の方法は無理と言う事でしょうか?