Excel VBA質問箱 IV

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

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


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

【62698】外字を全角にするには にしもり 09/8/25(火) 11:13 質問[未読]
【62700】Re:外字を全角にするには kanabun 09/8/25(火) 11:22 発言[未読]
【62703】Re:外字を全角にするには 脱 初心者 09/8/25(火) 11:39 発言[未読]
【62707】Re:外字を全角にするには にしもり 09/8/25(火) 12:46 質問[未読]
【62708】Re:外字を全角にするには 脱 初心者 09/8/25(火) 13:21 発言[未読]
【62710】Re:外字を全角にするには kanabun 09/8/25(火) 13:31 発言[未読]
【62711】Re:外字を全角にするには にしもり 09/8/25(火) 14:32 お礼[未読]

【62698】外字を全角にするには
質問  にしもり  - 09/8/25(火) 11:13 -

引用なし
パスワード
   こんにちは。

よく、(株)というような字がありますよね。外字と呼ぶようです。
もしセルにこの外字があったとき、これを全角「(」+全角「有」+全角「)」にしたいのですが、
どうすればこのように分解できるでしょうか?
どなたかよろしくお願いします。

追伸: 投稿【62697】と同じファイルを加工する中で起きている課題です。

【62700】Re:外字を全角にするには
発言  kanabun  - 09/8/25(火) 11:22 -

引用なし
パスワード
   ▼にしもり さん:

>よく、(株)というような字がありますよね。外字と呼ぶようです。

機種依存文字

で調べてみるとか?

【62703】Re:外字を全角にするには
発言  脱 初心者  - 09/8/25(火) 11:39 -

引用なし
パスワード
   >よく、(株)というような字がありますよね。外字と呼ぶようです。

tp://ja.wikipedia.org/wiki/%E5%A4%96%E5%AD%97

外字の定義を、ご覧下さい。

>もしセルにこの外字があったとき、これを全角「(」+全角「有」+全角「)」にしたいのですが、
>どうすればこのように分解できるでしょうか?

外字の定義があいまいである以上、どんなパターンでも分解する事は
不可能であると思います。

想定される一覧を準備し、それに対応する分解した後の定義を準備し
それらが、関連のある仕組みで提供する。

これが、もっとも簡単な解決法であり
あなたの勉強に役立つと思われます。

【62707】Re:外字を全角にするには
質問  にしもり  - 09/8/25(火) 12:46 -

引用なし
パスワード
   ▼kanabunさん、脱 初心者 さん:
有難うございます。外字の定義をよみました。変換したい外字はとりあえず(株)(有)の2つでしたので
一覧までは用いず、下記のようにしました。
が、Rangeメソッドが失敗、とエラーがでます。
すみませんどこが悪いでしょうか。

あと、(株)を含むとき、(株)だけを(株)に置換するロジックはたぶん間違っているとおもいます。
みようみまねで[]を使っているからです。
(株)を含むとき、(株)だけを(株)に置換するにはどうしたら宜しいでしょうか?


 Dim k As Long

 With Range("J" & k)
  '↑ここでエラーになります
    For k = 2 To 65536
      If .Value = "*(株)*" Then    '(株)を含むときThenへ
      .Value.[(株)] = .Value.[(株)] '(株)だけを(株)に置換
      End If
    Next k
  End With

【62708】Re:外字を全角にするには
発言  脱 初心者  - 09/8/25(火) 13:21 -

引用なし
パスワード
   >すみませんどこが悪いでしょうか。

シートを selectしないのが悪いのでは?

>(株)を含むとき、(株)だけを(株)に置換するにはどうしたら宜しいでしょうか?

そりゃ、置換を使うしかないでしょう。
エクセルの置換の機能は?

  Cells.Replace What:="(株)", Replacement:="(株)", LookAt:=xlPart, SearchOrder _
    :=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False

【62710】Re:外字を全角にするには
発言  kanabun  - 09/8/25(火) 13:31 -

引用なし
パスワード
   ▼にしもり さん:

>あと、(株)を含むとき、(株)だけを(株)に置換するロジック

範囲を限定して、実行してみてください:

 Dim r As Range
 Set r = Range("J2", Range("J65536").End(xlUp))
 With Application
   r.Value = .Substitute(.Substitute( _
    r.Cells, "(株)", "(株)"), "(有)", "(有)")
 End With


> Dim k As Long
>
> With Range("J" & k)
>  '↑ここでエラーになります
>    For k = 2 To 65536

> が、Rangeメソッドが失敗、とエラーがでます。
> すみませんどこが悪いでしょうか。


> With Range("J" & k)
↑の行に[F9]キーでブレークポイントを設定して、
 [F8]で1行実行して
 k に何が入ってるのか、確かめてみましょう

【62711】Re:外字を全角にするには
お礼  にしもり  - 09/8/25(火) 14:32 -

引用なし
パスワード
   ▼kanabun さん、脱 初心者さん:
有難うございます。
できました。
見たことがあるのでSubstituteを使わせていただきました。

置換の書き方も解りました。


ブレーックポイントを設定したところ、値は0でした。
  With Range("J" & k)
の前で、kに初期値をいれていませんでした。


追記: [ ]云々といったのは、面識別(?)という機能をどこかでみたからです。
不確かな知識で質問し失礼しました。

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