• 締切済み

Excel VBAについて教えてください

Excel VBAについてお尋ねします。 Excelで勘定元帳を作っているのですが、シート名に 「1-現金」 「2-普通預金」 などとなっています。 この場合に、Excel VBAで 「-」の前後、つまり、「1-現金」の場合は 「1」「現金」を取り出すコマンドをご存知の方教えてください。

みんなの回答

  • Masato_a
  • ベストアンサー率21% (13/60)
回答No.4

すみません。間違えてました。 正しくは下記です。 Dim strValue As String strValue = ActiveCell.Value Dim i i = InStr(1, strValue, "-") ' "-"の位置 Dim Bangou As String Dim Data As String Bangou = Left(strValue, i - 1) '番号の部分 Data = Mid$(strValue, i + 1) 'データの部分            ここを間違えてました。

  • Masato_a
  • ベストアンサー率21% (13/60)
回答No.3

以下のコードを試して見てください。 単純明快です。 Dim strValue As String strValue = ActiveCell.Value Dim i i = InStr(1, strValue, "-") ' "-"の位置 Dim Bangou As String Dim Data As String Bangou = Left(strValue, i - 1) '番号の部分 Data = Mid$(strValue, i + 1, 3) 'データの部分

  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.2

科目はたくさんあると思いますので、蛇足ですが。。。 Dim mySht As String 'シート名 Dim myKanjoNo, myKanjoName As String '科目、科目名 mySht = Sheets(1).Name 'シート番号を指定 myKanjoNo = Left(mySht, InStr(mySht, "-") - 1) myKanjoName = Right(mySht, Len(mySht) - InStr(mySht, "-"))

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.1

一番目のシートを選択した後、 Sheets(1).Nameを参照することでシート名が取得できます。 「(1)はn番目です」 これをmidb$で分解してください。 ここでは Dim strTemp As String で宣言した文字列変数で受け取ったとします。 strTemp = Sheets(1).Name ’数字の取り出し 変数a = Midb(strTemp,1,1) ’科目名の取り出し 変数 = Midb(strTemp,3,30) EXCEL2000ならSplitが利用できるので セパレータに"-"を指定すると 文字列を簡単に分解できます。

関連するQ&A