EXCELで
数字を全て全角で入力しているファイルがあります
 勿論、数字だけではなく漢字、ひらがな、英語も
 このファイル内に存在します

ある(指定した)行、ある(指定した)列のみの
"数字","英語","-","*"
を半角(直接入力)に変換する方法を教えて下さい

宜しくお願い申し上げます

このQ&Aに関連する最新のQ&A

A 回答 (2件)

> ある(指定した)行、ある(指定した)列のみの


では有りませんが、季節柄、住所録の編集と考えた場合「ある列」として全角半角混在の文字列データを、全て半角英数字表記の文字列データに変換できればよいのでしょうから。
B列に元データがあるとして
右側の適当な列に「=ASC(元データのセル番地)」とします。
(B3が元データの場合、G3などに、「=ASC(B3)」です)
次に、この式を列にある、G3より下のセルに複写します。これで一応計算結果としての処理は完了します。

変換データを固定したいのであれば、計算式の入っているセルを選択して「右クリック」→「コピー」→「右クリック」→「書式を選択して貼り付け」と順に選んで、上の「貼付け」の項目の「値」をクリックして目玉を入れて「Enter」すれば、同じ場所の計算式が消去され、結果が反映されます。
最後に不要な列を非表示又は列削除します。
    • good
    • 0

こんにちわ。



多分、関数ASCで変換できるのでは?

他の何も入っていない行に
=ASC(全角で入っているセル)
という関数を入れてみてください。
コレで後からその関数の値をコピーして
元の全角で入っているセルに値貼り付けをしてみては…

如何でしょうか。
    • good
    • 0

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

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qセル内で半角英数字と文字を入力してあるものを、文字だけにしたい(数字は不定)

こんなことできますか?
000S58:あかさたな商事
020230:いきしちに会社 を

あかさたな商事
いきしちに会社

と表示させる為の関数などはありますでしょうか?
宜しくお願いいたします。

Aベストアンサー

コードらしきものの桁数が6桁(「:」も含めれば7桁)固定なら、
=SUBSTITUTE(A1,LEFT(A1,7),"")
でもいけます。

Qセルの入力を半角数字8桁のみ入力したい

セルに入力制限をかけるために
入力規則の設定から
ユーザー設定を選択、
数式を  =EXACT(UPPER(A1),A1)
(A1セルに設定する場合)
と入力しています。
これにより文字の入力は防げましたが
/や?などの記号は入力できてしまいます。
このような記号の入力を同時に防ぐことは出来るでしょうか?

また、桁数は8桁のみの入力なのですが、
関数で【LENS】というのを使用すればよいみたいなのですが、
使い方がよくわかりません。

あわせてご教授いただければうれしいです。

Aベストアンサー

◆これでいいと思います
=AND(ISNUMBER(A1),LEN(A1)=8)

Q丸付き数字やローマ数字などの機種依存文字を通常の全角数字などに一括置換する方法は?

「全角の丸付き数字」や「全角のローマ数字」といった機種依存文字を一括して、例えば「全角数字」に置き換えるような方法はないでしょうか?
オフィス系ソフトでなくても、エディターとかフリーソフトでもよいです。何かツールみたいなものでもよいのですが。。。

いちいち大量のテキストを、ひとつひとつ置き換えるのは大変です。
ちなみに、私はWINDOWSを使っています。
よい方法を教えてください!

Aベストアンサー

下記のフリーソフトには「変換モード」という機能があり、

>「検索文字列:(F)」に「abcdef」、
>「置換文字列:(R)」に「ABCDEF」と入力し、
>変換モードで処理すると、
>「declare function」という文字列が「DEClArE FunCtion」という文字列に変換されます。
(readmeより引用)

ということなので、文字単位の変換を複数組一括処理できます。

また、「置換計画」という機能があって、
検索語と置換語のタブ区切テキストをインポートして、
文字列単位でも複数パターンの置換処理を連続して行うことができるようです。

※特定のファイルを指定しての処理も可能ですが、
 選択したフォルダ内の全ファイルについて一括処理することを既定にした作りなので、
 ルートに近いフォルダを対象に不用意な処理をすると
 深刻な結果をもたらす可能性があります。ご注意ください。

Repl-Ace Documents (Ver.4.2.2.0)
http://www.vector.co.jp/vpack/browse/pickup/pw6/pw006046.html

下記のフリーソフトには「変換モード」という機能があり、

>「検索文字列:(F)」に「abcdef」、
>「置換文字列:(R)」に「ABCDEF」と入力し、
>変換モードで処理すると、
>「declare function」という文字列が「DEClArE FunCtion」という文字列に変換されます。
(readmeより引用)

ということなので、文字単位の変換を複数組一括処理できます。

また、「置換計画」という機能があって、
検索語と置換語のタブ区切テキストをインポートして、
文字列単位でも複数パターンの置換処理を連続して...続きを読む

QエクセルVBAで、期間内にある指定した数字を自動入力

下のように月日(A列)のみが書いてある表があります。
ここに定価を自動入力させたいと考えています。
ただ条件が複雑で・・・。
期間内にあるもので、曜日により値を振り分けする必要があります。
例えば、

■月日(from) 3/1
■月日(to) 3/3
■値 土・日・・・500
   月・・・・・450
このような条件で、下の[入力前]の表の「値」の列に
[入力前]
月日  曜日   値
3/1    (土)
3/2    (日)
3/3    (月)
3/4    (火)
3/5    (水)
3/6    (木)

下のようにそれぞれ入力させたいのです。
[入力後]
月日  曜日    値
3/1    (土)    500
3/2   (日)    500
3/3    (月)    450
3/4    (火)
3/5   (水)
3/6    (木)

どこかのスペースに
■月日(from) 3/1
■月日(to) 3/3
■値 土・日・・・500
   月・・・・・450
このような条件入力をするところを設けて、マクロを実行すると入力するようにしたいのですが、こんな複雑な振り分け設定ってVBAでもできるでしょうか?

下のように月日(A列)のみが書いてある表があります。
ここに定価を自動入力させたいと考えています。
ただ条件が複雑で・・・。
期間内にあるもので、曜日により値を振り分けする必要があります。
例えば、

■月日(from) 3/1
■月日(to) 3/3
■値 土・日・・・500
   月・・・・・450
このような条件で、下の[入力前]の表の「値」の列に
[入力前]
月日  曜日   値
3/1    (土)
3/2    (日)
3/3    (月)
3/4    (火)
3/5    (水)
3/6    (木)

下のようにそれぞ...続きを読む

Aベストアンサー

こんばんは。

#3 です。返事が遅くなってしまいました。(お礼側なら、メールが来るのですが、補足側は来ないのです。)

#3でも書いたように、元の構造的は、ものすごく単純なのですが、

>読み取ろうとしたのですが、知識不足で分からないところだらけでした。
2次元配列が出てきますから、なかなか、読みきれないと思います。知識不足ではなくて、「他人のコードは読みにくい」ということです。まして、今回の内容は、すこしトリッキーです。(^^;ただ、このようなコードを、読み取ろうとしたお気持ちには敬服いたします。

  D     E    F
>■月日(from) 3/1
>■月日(to) 3/3
>■値   土・日・・・500
>     月・・・・・450

この部分は、土・日というのは、正直言って、最初参りました。

その値のデータ部分を、以下の2次元配列で格納しています。
  n = rng.Rows.Count - 1
  ReDim arWeekday(1, n)

ここが1つのポイントです。なお、2次元配列は、このようにして、右側に入れていきます。
1次元側は、0 と 1 の二つの入れ物を用意して、「曜日」と「金額」をそれぞれ入れます。

arWeekday(1, n) nは、変数で代入(配列の添え字は、0から始まりますから、入れ物の数は、必ず一つ減ります。n = rng.Rows.Count - 1 VB/VBAの特徴です。1からと書く人がいますが、それは、後々、混乱の元になるからやめたほうがよいです。必ず、「0」から始まると思っていたほうがよいです。)

今回は、固定で、Redim で配列変数を作ってしまっていますが、動的配列の場合は、必ず、右側を増やしていきます。一つのパターンのようにしておいたほうが無難です。動的配列で実行時エラーを起こさせないために、普段からこのような作り方をしています。

Application.ScreenUpdating = False の前までを、一旦、ブレークポイントを設けて、配列変数の中身をローカルウィンドウで、確認していただいたほうがよいかもしれません。この使い方を覚えれば、本当にいろんな応用が利きます。とても便利です。

'--------------------------------------------

    If IsDate(c.Value) Then
'  このIsDate は、ワークシートの場合は、本来はなくてもよいです。(念のため)
      If c.Value >= FirstDate And c.Value <= LastDate Then
' これは、日付の範囲を表したものですね。これは分かりますね。

'--------------------------------------------
ここが、2番目のポイントです。
 For j = 0 To n 
 'これは、1つ目のポイントで、格納した配列変数を一つずつ出します。
  If InStr(arWeekday(0, j), Format$(c.Value, "aaa")) > 0 Then
  '●ここの部分が重要です。-----下へ
    c.Offset(, 2).Value = arWeekday(1, j)
    Exit For
  End If
Next j
'

If InStr(arWeekday(0, j), Format$(c.Value, "aaa")) > 0

arWeekday(0, j) これが検索される側。つまり、土・日--500 と入っています。

つまり、一週間分が、それぞれ違っても良いということです。

その設定された日付(c.Value)を、Format$(c.Value, "aaa")  曜日に変換して、設定された曜日(土・日)が入っているか、入っていたら、「1 以上」になりますから、値を代入する、ということになります。月~日 まで、重なる漢字がありませんから、「土日」でも、「土・日」でも、「土,日」 でもヒットします。
'------------------------------------------------

  c.Offset(, 2).Value = arWeekday(1, j)
Exit For

後は、2次元配列の arWeekday(1, j) もう一つ、値側を代入してあげる、ということです。代入したら、後は、ループで検索は必要がないので、Exit For でループを抜けます。

'------------------------------------------------

一応、ここまでです。

ポイントの1番目は、マクロを覚える上では、重要な項目の一つです。2番目のポイントは、どちらかというとトリッキーな内容です。

そこで、私からの提案としては、もし、ご自身で今後マクロを考えるときは、以下のようにしたらよいかと思います。私は、ここの書き込みする時、最初、迷いましたが、あえて、設定条件を換えないことにしました。

  D     E    F
>■月日(from) 3/1
>■月日(to) 3/3
>■値   土・・・500
>     日・・・500
>     月・・・450
      ↑
     これらは、数値で表すことが出来ます。標準的には、日曜日が、「0」から始まり、土曜日「7」で終わります。例、1 と書いて、書式のユーザー設定で、「aaa」 としておきます。

言い換えると、日付も曜日もみんな数字だということです。数字の比較なら、簡単ですね。

マクロ側では、日付も曜日を、Weekday 関数で、数値に変換できますから、

wk = Weekday(日付) 'セルより代入
Select Case wk
Case 1 : v =500
Case 2 : v =400
Case 7 : v =500
End Select

というような風にすれば、簡単に出来てしまいます。

ただし、トリッキーな使い方としては、
Weekday(日付値, 最初の曜日)
を最初の曜日をずらしてあげると、

wk = Weekday(日付) 'セルより代入
wk = Weekday(mDate, vbMonday)
''wk が1になる。

''wk を 土曜日 6, 日曜日 7 にしてあげることも可能です。

そうすれば、
If wk >5 Then '6,7
 v = 500
ElseIf wk =1
 v =400
End If

という方法も可能です。一度、研究してみてください。
そうすれば、もっと分かりやすく簡単なコードになるはずです。

こんばんは。

#3 です。返事が遅くなってしまいました。(お礼側なら、メールが来るのですが、補足側は来ないのです。)

#3でも書いたように、元の構造的は、ものすごく単純なのですが、

>読み取ろうとしたのですが、知識不足で分からないところだらけでした。
2次元配列が出てきますから、なかなか、読みきれないと思います。知識不足ではなくて、「他人のコードは読みにくい」ということです。まして、今回の内容は、すこしトリッキーです。(^^;ただ、このようなコードを、読み取ろうとしたお気持ち...続きを読む

QExcelで、1,5,7,(),8,4という数字とカッコの合計数(6個)を出す場合の数式は?

Excelで、1、5、7、( )、8、4、という数字とカッコが並んでいた場合、数字のみの合計数は、オートSUMで数式を入れておけば、1+5+7+8+4で、12と算出されるかと思いますが、並んでいる数字とカッコの数を出したい場合(6個)、どのように数式を入れたらよいでしょうか?

Aベストアンサー

データの個数でしたら関数の
=COUNTA(A1:A6)
でいいと思います
A1:A6は任意に変えて下さい


人気Q&Aランキング

おすすめ情報