エクセルについて教えてください。

セルにデータを入力した後に「編集-置換(F)」「区切り位置(F)、データー(D)-区切り位置(F)」を適用するのではなく、事前にセルに設定しておいて、そのセルにペーストした文字列に自動的に置換(F)または区切り位置(F)の機能を適用する方法はありますか。

A1セルにabc-xyzとペーストするとabcになる。
B1セルにabc-xyzをペーストすると二つのセルにそれぞれabcと xyzとなる。

回答の条件
  • 1人3回まで
  • 登録:
  • 終了:2006/09/03 17:19:12
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答1件)

id:llusall No.1

回答回数505ベストアンサー獲得回数61

ポイント80pt

メニューの[ツール]-[マクロ]-[Visual Basic Editor]を押下して、

VBAのエディタを起動します。

プロジェクトエクスプローラからSheet1をダブルクリックして、

Sheet1をコード表示させ、次のコード記述して、保存してください。


Sheet1のA1セルに「abc-xyz」と入力すると、A1セルには、「abc」、

その右となりのB1セルには「abc-xyz」が表示されます。

ペーストしてもOKです。

その他のセルも試してみてください。

Private Sub Worksheet_Change(ByVal Target As Range)

    Dim ary() As String

    'ハイフンで区切って分割表示させる

    ary = Split(Target.Value, "-")

    Target.Value = ary(0)

    If UBound(ary) = 0 Then Exit Sub

    Target.Offset(0, 1).Value = ary(1)

End Sub

以上、参考になりますでしょうか?

id:dongwu

ありがとうございます。

セル単位の設定は無理なんですよね。

2006/09/02 15:20:33
  • id:llusall
    セル単位で行う場合は、次のように条件をつければいいです。

    '例:A1のセルのみ適用する場合。
    If Target.Row = 1 And Target.Column = 1 Then
    'ハイフンで区切って分割表示させる
    '(処理)・・・
    End If


    '例:B4のセルのみ適用する場合。
    If Target.Row = 4 And Target.Column = 2 Then
    'ハイフンで区切って分割表示させる
    '(処理)・・・
    End If


    ※Row、Column はR1C1形式での表記になります。
     詳細はヘルプを参照すると良いでしょう。
    あとは、上記例は、=で条件を設定していますが、不等号(><)など
    を使用すれば、適用範囲を設定できると思います。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません