Excel VBA質問箱 IV

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

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


9624 / 13646 ツリー ←次へ | 前へ→

【26309】おしえてください tomo 05/7/1(金) 10:13 質問[未読]
【26310】Re:おしえてください m2m10 05/7/1(金) 10:27 発言[未読]
【26319】Re:おしえてください tomo 05/7/1(金) 13:08 質問[未読]
【26321】Re:おしえてください 知ろう途 05/7/1(金) 13:28 回答[未読]
【26341】Re:おしえてください tomo 05/7/1(金) 23:01 質問[未読]
【26344】Re:おしえてください ぴかる 05/7/2(土) 8:54 回答[未読]
【26353】Re:おしえてください tomo 05/7/2(土) 12:43 お礼[未読]
【26345】Re:おしえてください 知ろう途 05/7/2(土) 9:16 発言[未読]
【26348】Re:おしえてください tomo 05/7/2(土) 10:10 質問[未読]
【26350】Re:おしえてください 知ろう途 05/7/2(土) 10:33 発言[未読]
【26354】Re:おしえてください tomo 05/7/2(土) 12:45 お礼[未読]

【26309】おしえてください
質問  tomo  - 05/7/1(金) 10:13 -

引用なし
パスワード
   教えてください。
セル内の全・半角英数のアルファベットと数字を消したいのですが
可能でしょうか?

   A

1 販売A

2 販売1

3 販売B

4 販売A
  
   ↓
  
   A

1 販売 ・・・このようにしたいのですが

【26310】Re:おしえてください
発言  m2m10  - 05/7/1(金) 10:27 -

引用なし
パスワード
   文字が2文字でしたら。

  =mid(a1 ,1,2)

 が使えます。

【26319】Re:おしえてください
質問  tomo  - 05/7/1(金) 13:08 -

引用なし
パスワード
   ▼m2m10 さん

ありがとうございます。
VBAでもできるのでしょうか?

【26321】Re:おしえてください
回答  知ろう途  - 05/7/1(金) 13:28 -

引用なし
パスワード
   文字列操作は

[B1].Value = Len([A1].Value) '文字数

[B2].Value = Left([A1].Value,2) '左から2文字

[B3].Value = Right([A1].Value,2) '右から2文字

[B4].Value = Mid([A1].Value,2,1) '左から2文字目の1文字

[B5].Value = Instr([A1].Value,"売") '【売】の文字が
                   ' 左から何文字目にあるか

などを使えば色んなことが出来ると思います。
 

【26341】Re:おしえてください
質問  tomo  - 05/7/1(金) 23:01 -

引用なし
パスワード
   ▼知ろう途 さん
こんばんは。
回答ありがとうございました。

大変申し訳ないのですが質問させてください。

>[B2].Value = Left([A1].Value,2) '左から2文字
連続して変換できるようにしたいのですが、A列に文字数(左から2〜3文字)が
ランダムにある場合どのようにしたらよいでしょうか?
また、B列ではなくA列に置き換えることは可能でしょうか?

【26344】Re:おしえてください
回答  ぴかる  - 05/7/2(土) 8:54 -

引用なし
パスワード
   横から失礼します。

右1文字を削除で良ければ、こんなんです。

Sub TEST()
  
Dim I As Long

  For I = 1 To Range("A1").End(xlDown).Row
    With Cells(I, 1)
      .Value = Mid(.Value, 1, Len(.Value) - 1)
    End With
  Next
      
End Sub

【26345】Re:おしえてください
発言  知ろう途  - 05/7/2(土) 9:16 -

引用なし
パスワード
   ど〜もです。

>連続して変換できるようにしたい
左から2文字を連続変換するなら・・
Sub RenzokuHenkan()
 
 Dim r As Long, n As Long
  '入力されてるA列の最終行数を取得
  r = Range("A" & Rows.Count).End(xlUp).Row

  For n = 1 To r
   Cells(n, 2).Value = Left(Cells(n, 1).Value, 2)
  Next

End Sub

>A列に文字数(左から2〜3文字)がランダムにある場合
とはどのような時でしょうか?(読解力が乏しいもんで・・)
悪魔でも・・いやあくまでも最初の質問に対する例をあげただけなので
具体的に教えてもらえれば回答出来ますよ!  
たったぶん・・・

>また、B列ではなくA列に置き換えることは可能でしょうか?
上記の一部を  
   Cells(n, 1).Value = Left(Cells(n, 1).Value, 2)
とすれば可能ですが、入力済みのセルに対するマクロの実行時の失敗は
元に戻せなくなるので、念のためバックアップしといて下さい。

【26348】Re:おしえてください
質問  tomo  - 05/7/2(土) 10:10 -

引用なし
パスワード
   ▼知ろう途 さん:
こんにちは
ありがとうございましたとても参考になりました。

>A列に文字数(左から2〜3文字)がランダムにある場合
書き方が悪かったです。すみません
ご教示お願いします。

A列に文字数(左から2〜3文字)がランダムにある場合

 A列
1田中A
2南田中B
3宮崎C
4伊勢崎E
5******



【26350】Re:おしえてください
発言  知ろう途  - 05/7/2(土) 10:33 -

引用なし
パスワード
   do-moです。

あっ
そういう事でしたらぴかるさんの分かりやすいコードで解決するはずですが・・

上から最終行数取得
Range("A1").End(xlDown).Row

下から最終行数取得
Range("A" & Rows.Count).End(xlUp).Row

の違いだけですし。
ちなみにリスト(今回の場合はA列)の途中に空白セルが無い場合は上
空白セルがある場合は下を使うと良いです。

Cells(Range("A1").End(xlDown).Row,1).Select

Cells(Range("A" & Rows.Count).End(xlUp).Row,1).Select

をそれぞれ試してみると分かると思います。

【26353】Re:おしえてください
お礼  tomo  - 05/7/2(土) 12:43 -

引用なし
パスワード
   ▼ぴかる さん:
ありがとうございます。
早速試したいと思います。

【26354】Re:おしえてください
お礼  tomo  - 05/7/2(土) 12:45 -

引用なし
パスワード
   色々ありがとうございました。
またなにかありましたら、教えてください。

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