OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

文字列の削除の仕方について

  • すぐに回答を!
  • 質問No.169281
  • 閲覧数69
  • ありがとう数4
  • 気になる数0
  • 回答数7
  • コメント数0

お礼率 42% (3/7)

まだVBAはじめたばかりですがよろしくお願いします。
Excel2000を使ってます。以下のことをマクロで行いたいのですが
やり方がわかりませんので教えてください。
あるセル内に「11月15日[晴れ] ○○」という文字列がはいってます。
そのうち[晴れ]の部分だけ([部分から]部分までを)削除した文字列をその隣の
セルにコピーしたいのです。
よろしくご教授お願いします。
通報する
  • 回答数7
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.7
レベル13

ベストアンサー率 68% (791/1163)

早とちりして間違えました。以下に修正しました。

Public Function fKiridashi(moji As String)
  Dim pot1 As Integer, pot2 As Integer '[と]の位置

  pot1 = InStr(moji, "[")
  pot2 = InStr(moji, "]")
  fKiridashi = Left(moji, pot1 - 1) & Right(moji, Len(moji) - pot2)
End Function

Public Sub sKiridashi()
  Dim rg As Range 'セル
  Dim pot1 As Integer, pot2 As Integer '[と]の位置

  For Each rg In Selection
    pot1 = InStr(rg.Value, "[")
    pot2 = InStr(rg.Value, "]")
    rg.Offset(0, 1) = Left(rg.Value, pot1 - 1) & Right(rg.Value, Len(rg.Value) - pot2)
  Next
End Sub
お礼コメント
pokokun

お礼率 42% (3/7)

nishi6様
大変早い対応ありがとうございます
1つのセルに複数の[]ないのものを削除であればループをすればできますよね?
ありがとうございました
投稿日時 - 2001-11-16 15:18:12
-PR-
-PR-

その他の回答 (全6件)

  • 回答No.2
レベル11

ベストアンサー率 30% (150/490)

置換 【問題】  B列に以下のように住所を入力しました。 大阪市天皇寺区○○○町一丁目 大阪市天皇寺区○○○町二丁目 大阪市天皇寺区△△△町三丁目  1000位の住所を入力した後で、「天皇寺区」ではなく「天王寺区」が正しいこ とに気がつきました。どうやって修正したら良いでしょうか? 大阪市天王寺区○○○町一丁目 大阪市天王寺区○○○町二丁目 大阪市天王寺区△△△町三丁目 ...続きを読む
置換
【問題】
 B列に以下のように住所を入力しました。

大阪市天皇寺区○○○町一丁目
大阪市天皇寺区○○○町二丁目
大阪市天皇寺区△△△町三丁目

 1000位の住所を入力した後で、「天皇寺区」ではなく「天王寺区」が正しいこ
とに気がつきました。どうやって修正したら良いでしょうか?

大阪市天王寺区○○○町一丁目
大阪市天王寺区○○○町二丁目
大阪市天王寺区△△△町三丁目

【回答】
1.B列を選択
2.Ctrl+H (メニュー[編集]-[置換])
3.[検索する文字列] に 大阪市天皇寺区 と入力
4.[置換後の文字列] に 大阪市天王寺区 と入力
5.[完全に同一なセルだけを検索する] にチェックが入っていないことを確認して
[すべて置換]ボタンをクリック

【解説】
 [すべて置換]を実行する際は、一つのセルだけを選択しているかセル範囲を選択しているかで実行結果が異なります。

 一つのセルだけを選択している場合には、全てのセルが置換の対象になります。

 今回のように範囲を選択してから[すべて置換]を実行すると、その選択した範囲内が置換の対象になります。
お礼コメント
pokokun

お礼率 42% (3/7)

PCboy様
回答ありがとうございます。
置換のことは存じておりましたが、VBAのマクロの勉強がてらしてみたかったので
質問してみました。
また、私の言葉が足らず申し訳ありませんでした。
投稿日時 - 2001-11-15 23:13:20

  • 回答No.1
レベル11

ベストアンサー率 30% (150/490)

置換で文字列削除 【問題】  B列に以下のように住所が入力されています。全て大阪市天王寺区の住所です。 大阪市天王寺区○○○町一丁目 大阪市天王寺区○○○町二丁目 大阪市天王寺区△△△町三丁目  これを「大阪市天王寺区」を消して以下のようにするにはどうしたら良いでしょうか? ○○○町一丁目 ○○○町二丁目 △△△町三丁目 【回答】 1.B列を選択 2.Ctrl+H ...続きを読む
置換で文字列削除
【問題】
 B列に以下のように住所が入力されています。全て大阪市天王寺区の住所です。

大阪市天王寺区○○○町一丁目
大阪市天王寺区○○○町二丁目
大阪市天王寺区△△△町三丁目

 これを「大阪市天王寺区」を消して以下のようにするにはどうしたら良いでしょうか?

○○○町一丁目
○○○町二丁目
△△△町三丁目

【回答】
1.B列を選択
2.Ctrl+H (メニュー[編集]-[置換])
3.[検索する文字列] に 大阪市天王寺区 を入力
4.[完全に同一なセルだけを検索する] にチェックが入っていないことを確認して
[すべて置換]ボタンをクリック

【解説】
 上記手順では、[置換後の文字列] に何も入力しないで置換を実行しています。

 [すべて置換]を実行する際は、一つのセルだけを選択しているかセル範囲を選択しているかで実行結果が異なります。

 一つのセルだけを選択している場合には、全てのセルが置換の対象になります。

 今回のように範囲を選択してから[すべて置換]を実行すると、その選択した範囲内が置換の対象になります。
  • 回答No.3

マクロで行いたいということですが、文字列操作関数を使えば、マクロを組むまでもないかと思いますが・・・。 セルA2に「11月15日[晴れ] ○○」という文字列が入力されているとして、セルB2に =LEFT(A1,6)&RIGHT(A1,LEN(A1)-10) と入力すれば、 "LEFT(A1,6)"で『11月15日』の部分が取り出され、 "RI ...続きを読む
マクロで行いたいということですが、文字列操作関数を使えば、マクロを組むまでもないかと思いますが・・・。

セルA2に「11月15日[晴れ] ○○」という文字列が入力されているとして、セルB2に

=LEFT(A1,6)&RIGHT(A1,LEN(A1)-10)

と入力すれば、

"LEFT(A1,6)"で『11月15日』の部分が取り出され、
"RIGHT(A1,LEN(A1)-10)"で『[晴れ]』より後ろの部分(『 ○○』の部分)が取り出され、
"&"で結合されます。("&"はExcelで文字列を結合する時に使う演算子です。)
  • 回答No.4

No.#3のRIO-Freakです。すみません、訂正です。(No.#3の回答では、セルの指定を間違えた上に、日付の部分が"1月1日"とか"11月1日"とか4文字、5文字の場合、[ ]内が雨や曇りの場合に正しい結果が出ません。) 正しくは、 セルA2に「11月15日[晴れ] ○○」という文字列が入力されているとして、セルB2に =LEFT(A2,F ...続きを読む
No.#3のRIO-Freakです。すみません、訂正です。(No.#3の回答では、セルの指定を間違えた上に、日付の部分が"1月1日"とか"11月1日"とか4文字、5文字の場合、[ ]内が雨や曇りの場合に正しい結果が出ません。)

正しくは、

セルA2に「11月15日[晴れ] ○○」という文字列が入力されているとして、セルB2に

=LEFT(A2,FIND("日",A2))&RIGHT(A2,LEN(A2)-FIND("]",A2))

と入力すれば、

LEFT(A2,FIND("日",A2)) で『11月15日』の部分が取り出され、
RIGHT(A2,LEN(A2)-FIND("]",A2)) で『]』より後ろの部分(『 ○○』の部分。文字数は何文字でもOK)が取り出され、
"&"で結合されます。("&"はExcelで文字列を結合する時に使う演算子です。)

PS.
マクロで行いたいということですが、VBAの勉強のために敢えてマクロで処理したいということなのでしょうか?
補足コメント
pokokun

お礼率 42% (3/7)

RIO-Freak様
お答えいただきありがとうございます。
また、わかりやすい回答ありがとうございます。
VBAの勉強のためにあえてマクロで行いたいのです。
私の言葉が足りなくて申し訳なかったのですが、
セルに「11月15日[晴れ] ○○[△△]」というように何個か『[ ]』で囲まれて
いる文字列があるのです。それをすべて取り除いたものを隣のセルにコピーしたいのです。そのような場合であればお答えいただいた方法でできますでしょうか?
FINDを利用して『[』部分を検索するのはわかったのですが・・・
よろしくお願いします
投稿日時 - 2001-11-15 23:04:57
  • 回答No.5
レベル12

ベストアンサー率 52% (322/612)

こんばんは! 範囲がA2:A10であれば Sub okikae() Range("A2:A10").Select Selection.Copy Range("B2").Select ActiveSheet.Paste Selection.Replace What:="[*]", Rep ...続きを読む
こんばんは!

範囲がA2:A10であれば

Sub okikae()
Range("A2:A10").Select
Selection.Copy
Range("B2").Select
ActiveSheet.Paste
Selection.Replace What:="[*]", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
End Sub

こんな感じでしょうか!
お礼コメント
pokokun

お礼率 42% (3/7)

comv様 おはようございます
お答えいただきありがとうございます。
この方法でためさせていただいたのですがSelection.Replace以降のところで
エラーになってしまい止まってしまいます。
EXCEL2000では動作しないのでしょうか?
参考にさせていただきもう少し考えてみます。
もし、他にも方法がありましたらご教授お願いします。
投稿日時 - 2001-11-16 08:35:49
  • 回答No.6
レベル13

ベストアンサー率 68% (791/1163)

ユーザー定義関数とモジュールを書いてみました。(VBAらしく???) ユーザー定義関数は =fKiridashi(セル) とします。 マクロはセル範囲を選択して sKiridashi を実行します。 選択範囲の隣に「晴れ」とかを切りだします。選択範囲は連続でも飛び離れていてもかまいません。 ご参考に 以下は標準モジュールに貼り付けます。 Public Function fKir ...続きを読む
ユーザー定義関数とモジュールを書いてみました。(VBAらしく???)

ユーザー定義関数は =fKiridashi(セル) とします。

マクロはセル範囲を選択して sKiridashi を実行します。
選択範囲の隣に「晴れ」とかを切りだします。選択範囲は連続でも飛び離れていてもかまいません。
ご参考に

以下は標準モジュールに貼り付けます。

Public Function fKiridashi(moji As String)
  Dim pot1 As Integer, pot2 As Integer ' [ と ] の位置

  pot1 = InStr(moji, "[") ' [ の位置
  pot2 = InStr(moji, "]") ' ] の位置
  fKiridashi = Mid(moji, pot1 + 1, pot2 - pot1 - 1)
End Function


Public Sub sKiridashi()
  Dim rg As Range 'セル
  Dim pot1 As Integer, pot2 As Integer ' [ と ] の位置

  For Each rg In Selection
    pot1 = InStr(rg.Value, "[")
    pot2 = InStr(rg.Value, "]")
    rg.Offset(0, 1) = Mid(rg.Value, pot1 + 1, pot2 - pot1 - 1)
  Next
End Sub
補足コメント
pokokun

お礼率 42% (3/7)

nishi6様
ありがとうございます。
[]を含む中身を表示ではなく[]を含む中身を削除したものを表示させたいのです。
でもかなり参考になりました。
もうすこし挑戦してみます。
投稿日時 - 2001-11-16 14:29:37
このQ&Aのテーマ
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
このやり方知ってる!同じこと困ったことある。経験を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ