Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


4062 / 13644 ツリー ←次へ | 前へ→

【58605】条件選択 KT 08/10/31(金) 9:15 質問[未読]
【58606】Re:条件選択 かみちゃん 08/10/31(金) 9:46 発言[未読]
【58607】Re:条件選択 KT 08/10/31(金) 10:00 質問[未読]
【58608】Re:条件選択 kanabun 08/10/31(金) 10:31 発言[未読]
【58610】Re:条件選択 KT 08/10/31(金) 10:42 お礼[未読]

【58605】条件選択
質問  KT  - 08/10/31(金) 9:15 -

引用なし
パスワード
   こんにちは。
VBAをはじめたばかりで、一箇所ほど分からないところがありますが、よかったら、教えていただけないでしょうか?お願いします。

今エクセルシート上のCのコラムのセルの中に.から始まるものとそうでないものがあります。たとえば.A1055とC1042 のように。自動的にダウンロードしたデータですので、どのセルもその数字のあとに若干スペースが開いています。

今書いてるエクセルのマクロの中で、このセルの中身の数字をエクセルでXのコラムにすべて
A1055-KQ
C1042-KQ
っていう部分マクロを書きたいのですが、まったくわかりません。
エクセル関数のTrimって言う関数は知っているのですが、これをどう使ったらいいのかよくわからないので、できれば、この部分のマクロを書いていただけないでしょうか?よろしくお願いします。

【58606】Re:条件選択
発言  かみちゃん E-MAIL  - 08/10/31(金) 9:46 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>今書いてるエクセルのマクロの中で、このセルの中身の数字をエクセルでXのコラムにすべて
>A1055-KQ
>C1042-KQ
>っていう部分マクロを書きたい

C1セルに
> 自動的にダウンロードしたデータですので、どのセルもその数字のあとに若干スペースが開いています
のデータがあって、X1セルに出したい場合は、以下のような感じで、できると思います。

Range("X1").Value = Application.WorksheetFunction.Trim(Range("C1").Value) & "-KQ"

また、途中のスペースも除外したい場合は、

Range("X1").Value = Replace(Range("C1").Value," ","", , , vbTextCompare) & "-KQ"

とします。

なお、
>エクセル関数のTrimって言う関数は知っている
ということですが、

VBAのTrim関数と、ワークシート関数のTRIMの機能の違いがあります。

詳しくは、両方のヘルプで確認していただきたいのですが、

VBAのTrim関数は、
 1バイト(半角)、2バイト(全角)にかかわらず、文字列の先頭あるいは末尾のスペースを削除

ワークシート関数のTRIM
 文字列に複数のスペースが連続して含まれている場合、単語間のスペースを1つずつ残
 して、不要なスペースをすべて削除

【58607】Re:条件選択
質問  KT  - 08/10/31(金) 10:00 -

引用なし
パスワード
   かみちゃん、ご丁寧に説明していただいて、ありがとうございます。

教えていただいたコードでとりあえず、KQをつけることができましたが、"."から始まるものをIFファンクションで取り除きたいのですが、どうすればいいのですが、地にミニ、自分が考えたものは以下のものです。


If Left("C" & i) = "." Then
Worksheets("reuters").Range("S4").Value = ????どうすればいいのですか?

これが精一杯のところです。よろしくお願いします。

【58608】Re:条件選択
発言  kanabun  - 08/10/31(金) 10:31 -

引用なし
パスワード
   ▼KT さん:
おじゃまします。

>"."から始まるものをIFファンクションで取り除きたいのですが、

"."から始まる文字列かどうかは Like演算子を使います。
  If 文字列 Like ".*" Then

スペースが混ざっている文字列から . で始まるセルを検索するなら、
文字列変数に、セルの文字列からすべてのスペースを取り除いたものを
代入しておいてから 先ほどの If 〜 Like で判定します。

Sub Try()
 Dim c As Range
 Dim ss As String
 
 For Each c In Range("C1", Range("C65536").End(xlUp))
   ss = Replace(c.Value, " ", "", , , vbTextCompare)
   If ss Like ".*" Then
     c.Offset(, 21).Value = Mid$(ss, 2) & "-KQ"
   End If
 Next
End Sub

【58610】Re:条件選択
お礼  KT  - 08/10/31(金) 10:42 -

引用なし
パスワード
   Kanabunさん、ありがとうございます。

なるほど、Replaceファンクションですか。
以前勉強したことがあるのに、いざという時、ぜんぜん使えませんでした。
ありがとうございました。

Kanabunさん、かみちゃんさん、本当に感謝しています。

4062 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free