富山県中新川郡上市町のQ&A

  • 締切済

    質問エクセルのマクロにLEFT関数のような働きはありませんか?

    • 2009/4/26
    • suzubuu

    顧客データから抽出したデータの、書式を整える作業を自動記録したマクロを使ってやっています。
    データの住所欄から、市か郡から下の部分を削除する作業があるのですが、抽出される顧客データは毎日違うので、自動記録のマクロでは出来ないため、この部分は手作業で行なっています。
    この「住所の市または郡から下の部分を削除する作業」をマクロで行なう方法は無いでしょうか?

    自動記録のマクロでは以下のようになっています。
    Cells.Replace What:="○○県××市○○町1-2-3", Replacement:="○○県××市", LookAt:=xlPart, _SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ReplaceFormat:=FalseCells.Replace What:="○○県**市△△町4-5-6", Replacement:="○○県**市", LookAt:=xlPart, _SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _

    マクロに、ワークシート関数の=LEFT(A1,(FIND("市",A1)))と同じ様な働きを記述できればいいのか?とも思うのですが、やり方がわかりません。

    続きを読む

  • 回答

    • 2009/4/26
    • Wendy02
    • ベストアンサー

    こんにちは。

    データベースで調べてみましたが、都道府県のあとの処理は、なかなか完全にはできません。Replace では、思い切って上書きでは、できません。データの横に出して正しくできているか調べるほうがよいです。今の段階では、完ぺきとはいえませんから。

    例として、市が二つ続くのは、全国で3つあります。
    「栃木県今市市」、「三重県四日市市」、「広島県廿日市」です。

    「千葉県八日市場市安久山」は、日市の後の字ではありません。八日市場市が正解です。

    また、「福島県郡山市」 や 「愛知県蒲郡市旭町」 のように、郡のあとに市かありますから、郡山市 蒲郡市が、正解です。「兵庫県神崎郡市川町浅野」や「富山県中新川郡上市町旭町」は、郡のあとに、市が来ますが、神崎郡 新川郡 までです。同じく、「北海道余市郡余市町」の場合は、市のあとに、郡があって、その後に、市がまた来ます。
    余市郡が正解です。

    「鹿児島県日置郡市来町大里」では、郡のあとに、市がきますが、日置郡が正解です。

    エラーチェックは、読み仮名できるような気がしますが、今のところは必要なさそうです。都道府県を区切るならともかく、「市・郡・区」を、関数式で区切るのは少し無理のような気がします。

    今、すべてのものを以下のコードで、正しく区切れているか分かりません。

    出力場所と、データ範囲は、任意です。適当に変えてください。

    '標準モジュール
    '---------------------------------------------

    Sub SplitOverLetters()
      Dim i As Integer, j As Integer, k As Integer
      Dim m As Integer, n As Integer
      Dim c As Variant
      Dim buf As String, buf2 As String, buf3 As String
      Dim ret As String
      Const COL As Integer = 1 '出力先(データに対して何列目・右)
      
      Application.ScreenUpdating = False
      For Each c In Range("A1:A20") 'データ範囲
        If c.Value <> "" Then
          If c.Value Like "*[都道府県]*" Then
            If Mid(c.Value, 4, 1) = "県" Then
              i = 1
            Else
              i = 0
            End If
            buf = Left(c.Value, 3 + i)
            buf2 = Replace(c.Value, Left(c.Value, 3 + i), "")
            i = InStr(buf2, "郡")
            j = InStr(buf2, "市市")
            k = InStr(buf2, "場市")
            m = InStr(buf2, "市")
            n = InStr(buf2, "区")
            If i > 2 Then
              buf3 = Mid(buf2, 1, i)
              ret = buf & buf3
            End If
            If j > 1 And ret = "" Then
              buf3 = Mid(buf2, 1, j + 1)
              ret = buf & buf3
            End If
            If k > 2 And ret = "" Then
              buf3 = Mid(buf2, 1, k + 1)
              ret = buf & buf3
            End If
            If m > 1 And ret = "" Then
              buf3 = Mid(buf2, 1, m)
              ret = buf & buf3
            End If
            If n > 1 And ret = "" Then
              buf3 = Mid(buf2, 1, n)
              ret = buf & buf3
            End If
            c.Offset(, COL).Value = ret
          End If
        End If
        ret = ""
      Next c
      Application.ScreenUpdating = True
    End Sub

    続きを読む

  • 締切済

    質問ムヒアルファEXを塗ると真っ赤になってきました

    • 2007/8/22
    • golf90

    蚊だと思うのですが、足のスネや足首を数箇所刺されました。

    痒いので掻かずにムヒアルファEXを何回か塗ると
    幹部がかなり真っ赤になってきました。

    これは効いている証拠なのでしょうか?
    どうして赤くなるのかもわかれば教えてください。

    直径1cmくらいが充血しているみたいに真っ赤です。

    よろしくお願いいたします。

  • 回答

    • 2007/8/23
    • simakawa
    • ベストアンサー

    効いているのではなく副作用の発疹・発赤と思われます.
    メーカーに聞いてしまいましょう.親切に教えてくれます.

     お客様相談窓口 : 株式会社 池田模範堂
       〒930-0394 富山県中新川郡上市町神田16番地
           076―472―0911〔電話受付時間:月~金(祝日を除く)                      8:30~17:30〕

    続きを読む