『スペースの省略』(ハヤカワ) A1セルに「愛  知」と入力して,B1セルにA1の情報を反映させて,さらにスペースを省略して「愛知」と表示させることは,関数やVBAを使ってできますか。 なお,スペースは全角スペースで,スペースの数が1個のときもあれば,2個,3個のときもあるのですが。 よろしくお願いします。 ---- B1 =SUBSTITUTE(ASC(A1)," ",)   こんな感じではいかがでしょう? (キリキ)(〃⌒o⌒)b ---- VBAを使って省略する場合のVBAを教えてください。 よろしくご指導お願いいたします。 (shota) ---- こういうことですか?   Range("B1") = Replace(StrConv(Range("A1"), vbNarrow), " ", "") (キリキ)(〃⌒o⌒)b ---- キリキ様早速のご指導誠にありがとうございます。 A1からA5までのをB1からB5に一気にするにはVBAをどのように書けばよろしいのでしょうか。 よろしくご指導お願いいたします。 (shota) ---- For...Next や Do...Loop なりで、ループしてください。   (キリキ)(〃⌒o⌒)b ---- ループする方法のVBAの書き方がわかりません。 丸投げで誠にすみませんがループしたときのVBAを教えてください。 宜しくお願いいたします。 (shota) ---- >丸投げで誠にすみませんがループしたときのVBAを教えてください。 丸投げではお答えいたしません。   ヘルプを見てください。   For...Next ステートメント For Each...Next ステートメント Do...Loop ステートメント   または、過去ログを見れば、解決できると思います。 (キリキ)(〃⌒o⌒)b ---- どうもお手数おかけしました。 過去ログ等を勉強してみます。 ありがとうございました。 (shota) ---- キリキ様のおっしゃることは私には理解できませんでしたので下記のようにしました。 Public Sub A(TXT As String, TXT2 As String) Range(TXT) = Replace(StrConv(Range(TXT2), vbNarrow), " ", "") End Sub Sub 省略() A "C1", "A1" A "C2", "A2" A "C3", "A3" A "C4", "A4" A "C5", "A5" End Sub どうもありがとうございました。 (shota) ---- わざわざそんな難しい事しなくてもいいと思いますが。。。  ループは、基本ですから覚えてくださいねb   一例ですが、こんな感じでどうです?   Sub test() Dim i As Integer Dim Rng As Range For i = 1 To 5 Cells(i, 2) = Replace(StrConv(Cells(i, 1), vbNarrow), " ", "") Next i For Each Rng In Range("A1:A5") Rng.Offset(, 2) = Replace(StrConv(Rng, vbNarrow), " ", "") Next i = 0 Do i = i + 1 Range("D" & i) = Replace(StrConv(Range("A" & i), vbNarrow), " ", "") Loop Until i = 5 End Sub   (キリキ)(〃⌒o⌒)b ---- ループ不要かも。(ROUGE)   With Range("A1", Range("A" & Rows.Count).End(xlUp)).Offset(, 1) .Formula = "=substitute(asc(a1),"" "","""")" .Value = .Value End With ---- shotaさんのサブルーチンにする方法であれば、Functionにした方が良いかもしれませんね。 (ROUGE)   Sub test() Dim rng As Range For Each rng In Range("C1:C5") rng.Value = shota(rng.Offset(, -2).Text) Next End Sub Private Function shota(txt As String) As String shota = Replace(StrConv(txt, vbNarrow), " ", "") End Function ---- キリキ様 ROUGE様ありがとうございます。 勉強してみます。 貴重なお時間私のためにお使いになられまことにありがとうございます。 (shota) ---- 邪道かな? Sub test() With Range("a1", Range("a" & Rows.Count).End(xlUp)) .Value = Evaluate("if(" & .address & "<>"""",substitute(asc(" & .address & "),"" "",""""),"""")") End with End sub (seiya) ---- seiya様ありがとうございます。 てっきりB列に表示される物と思っておりましたが なんとそのままスペースを削除してしまいました。 ご指導誠にありがとうございます。 大変びっくりしました。 キリキ様 ROUGE様 seiya様今後ともご指導宜しくお願いいたします。 本当にありがとうございました。 (shota) ---- 「VBAを使う」「スペースが全角と決まっている」 →B列にコピーして置換 でも良いんじゃないですかね? マクロの記録で出来ると思いますが。 (ハヤカワ)さんの状況が分からないのではずしているかもしれませんが >スペースの数が1個のときもあれば,2個,3個のときもある これって、  愛 知  東 京  北海道 の様に両端をそろえる為だったのですかね? それなら、セルの書式設定 [配置]・横位置(H)・「均等割付」としておけば そもそもスペースを入れる必要が無い様に思います。 (HANA) ---- HANA様貴重なご意見ありがとうございます。 ハヤカワ様の質問を横取りしてしまってまことに申し訳ないと思っております。 ハヤカワ様すみませんでした。 今後ともご指導宜しくお願いいたします。 (shota)