Excel VBA質問箱 IV

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

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


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

【57794】セルの中の文字の分解について まさる 08/9/13(土) 15:19 質問[未読]
【57797】Re:セルの中の文字の分解について りん 08/9/13(土) 15:59 回答[未読]
【57799】Re:セルの中の文字の分解について まさる 08/9/13(土) 16:44 質問[未読]
【57802】Re:セルの中の文字の分解について りん 08/9/13(土) 17:09 発言[未読]
【57803】Re:セルの中の文字の分解について まさる 08/9/13(土) 17:22 お礼[未読]

【57794】セルの中の文字の分解について
質問  まさる  - 08/9/13(土) 15:19 -

引用なし
パスワード
   1セル中に以下の様な規則で文字が入っています。
(AAA BBBB)  AAAA:数字 BBB;名前 ();セル
これを、以下の様に2つのセルに分離する事は可能でしょうか?
(AAA)(BBB)
方法がまったく思いつかない状態です。もし方法をご存知の型がいれば、ご教授お願いします。

【57797】Re:セルの中の文字の分解について
回答  りん E-MAIL  - 08/9/13(土) 15:59 -

引用なし
パスワード
   まさる さん、こんにちわ。

>1セル中に以下の様な規則で文字が入っています。
>(AAA BBBB)  AAAA:数字 BBB;名前 ();セル
>これを、以下の様に2つのセルに分離する事は可能でしょうか?
>(AAA)(BBB)

数字が半角で入っているとして。

Sub test()
  Dim s1 As String, s2 As String
  '数値の部分を切り出す
  s1 = Range("A1").Value
  'Val関数で数値部分を抜き出します(1を付け加えるのは頭0への対策です)
  s2 = Format(Val("1" & s1), "0")
  s2 = Right(s2, Len(s2) - 1)
  '結果
  Range("B1").Value = s2
  Range("C1").Value = Replace(s1, s2, "")
End Sub

こんな感じです。

【57799】Re:セルの中の文字の分解について
質問  まさる  - 08/9/13(土) 16:44 -

引用なし
パスワード
   ご回答ありがとうございます。
サンプルプログラム使ってみました。うまく動作しました。
これで目的の動作ができそうです。とても勉強になりました。
一つ質問ですが、
FOMAT(引数、”0”)と表示形式を変えたのはどういう意図からでしょうか?
もしよければ、私の予期せぬエラーに対する対応なのかもしれませんおで、ご指導いただけますでしょうか?

【57802】Re:セルの中の文字の分解について
発言  りん E-MAIL  - 08/9/13(土) 17:09 -

引用なし
パスワード
   まさる さん、こんにちわ。

>FOMAT(引数、”0”)と表示形式を変えたのはどういう意図からでしょうか?
>もしよければ、私の予期せぬエラーに対する対応なのかもしれませんおで、ご指導いただけますでしょうか?

表示形式をかえているわけではなくて、Val関数で数値に変換したものをFormat関数で文字列に戻しています。
戻す理由は、Replace関数の引数が文字列だからです。

Function Replace(Expression As String, Find As String, Replace As String, [Start As Long = 1], [Count As Long = -1], [Compare As VbCompareMethod = vbBinaryCompare]) As String

【57803】Re:セルの中の文字の分解について
お礼  まさる  - 08/9/13(土) 17:22 -

引用なし
パスワード
   納得です。
FORMATを付けなくても、動いたのでなぜなんだろう?と思っていましたが、
取り説に則って書き直していたのですね。
本当に勉強になります。ありがとうございました。

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