• ベストアンサー

EXCEL

EXCEL VBAで文字列から指定の文字列を取り除くコマンドを教えてください。 たとえば 「12x15」と書かれたセルから「x」以降の文字を取り除き「12」と変換するにはどうしたらよいのでしょうか? 教えていただけますか? お願いします。

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

  • ベストアンサー
  • Nayuta_X
  • ベストアンサー率46% (240/511)
回答No.2

Sub TEST() Data = "12x15" k = Len(Data) n = InStr(Data, "x") my_Left = Left(Data, n - 1) 'my_Right = Right(Data, k - n) '蛇足ですが、これを追加して Kotae = my_Left '& my_Right '  & my_Right を追加すると 1215が、得られます。 End Sub

ktktktkt
質問者

お礼

文字列の削除ができました。 ありがとうございました。

その他の回答 (2)

  • KenKen_SP
  • ベストアンサー率62% (785/1258)
回答No.3

Val を使うとか。 Msgbox Val("12x15")

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.1

ワークシート関数なら =LEFT(A1,SEARCH("x",A1,1)-1) で、出来ますね。 VBAなら、こんな感じかな。 Sub test() Dim s As String s = Range("A1").Value Range("A1").Value = Left(s, InStr(s, "x") - 1) End Sub

関連するQ&A

  • Excelで日付の書式を指定文字列に変換

    Excelで日付の書式を指定文字列に変換 セルから日付情報を得て、文字列でyyyymmddに変換するには、どのようにすればいいでしょうか。VBA・関数のどちらでもかまいません。よろしくお願いします。

  • エクセルVBAのReplaceメソッドについて

    エクセル表内のある文字列をVBAのReplaceメソッドを使用して、別の文字列に一括変換したいと考えてます。引数で指定する『置換後の文字列』として該当セルの一つ上のセル(A2に対象文字列がある場合は、A1の値)を指定したいのですが、どのように指定したらよいのか分かりません。Replaceメソッドで置換後の文字列として一つ上のセルの値を指定する事は可能でしょうか。宜しくお願いします。

  • excelでの数字つきの文字の出し方

    エクセルで、一つ一つのセルに数字つきの文字を出したいです。 例えば、x1、x2、x3、x4、x5、、、、と言ったものを一つ一つのセルに出したいのです。 地道にx1、エンター、x2、エンター、、、、と入力していけば出ますが、1000個ぐらいあるとちょっとうざいです。 どうにかうまいこと、出せるようにできないものでしょうか。 念のため言っておきますが、出したいのはA1などのセルの番号ではなく、文字列です。  _____ | x1 |  ―――― | x2 |  ―――― | x3 |  ―――― 見たいな感じです。分かりますでしょうか??

  • エクセルVBAで範囲指定の方法をおしえてください

    エクセルVBAで範囲指定の方法をおしえてください こんばんは。 以下のようにデータがあるとします。 222 111 333 555 888 999 454 665 222 111の文字列を含むセルから888の文字列を含むセルまでをVBAで範囲指定したいのですが 方法がわかりません。 エクセルに読み込むファイルによって目的の情報の位置が変わるため、文字列を基に範囲指定したいのです。 本当に困っていますよろしくお願いします。

  • エクセルについて

    どなたかご教示ください。 エクセルで、ある一つのセルに一定の文字列や数値が入力されたら、 それによって、違う列にある、ある一つのセルから横や盾方向に指定した数のセル数まで、一定の文字列や数値が入力される様に、なんて出来ますでしょうか? 小生、関数やVBAなるもの、よくわからないもので申し訳ありませんがよろしくお願いいたします。

  • EXCELで文字を数字に変換したい

    お世話になります。 エクセルシート上の見た目数字、実は文字列という値を、数字に変換したいのですが、EXCEL-VBAでどのように処理すればいいのでしょうか? 1.セルから文字列型の見た目数字の値をとってくる。 2.VBAで文字列型から整数型に変換する。 3.元のセルに貼り付ける。 4.セル書式を数字のカンマ形式にする。 リンクではなくこのような処理をしたいのですが、どうすればいいのでしょうか?

  • エクセルVBAで文字列変換

    エクセル2010でVBAを書いています。 シートの中のセルを全ての書式を文字列に変換するのはどうすればよいでしょうか。 ボタンをクリックした時にシート内のセルが全て文字列型に変換するという動きにしたいです。 解決法などありますでしょうか。 よろしくお願いします。

  • エクセルVBA

    初心者でレベルが低いですがよろしくお願いします。 VBAでエクセルのセル内の文字列を読み込んでその中の文字を検索し、ヒットしたときにそのヒットした文字だけを変換して取得することが可能でしょうか?? 列 A1に hanamiti/1234 という文字列が入っていて この文字列の中の / を検索し、あった時に _ に変更する。 結果 hanamiti_1234 として取得した。 ということができるのでしょうか? ご教授お願いいたします・。

  • エクセルVBAで複数のセルの操作

    コマンドActivecell.Valueという指定の仕方ってありますよね。でもアクティブなセルをCtrlボタンで複数にするとこのコマンドでは操作できないですよね。 たとえばアクティブセル(内容:文字列)をちりばめて、そのすべてに"氏"とつけるマクロを作りたいのですが、どうすればいいのでしょうか。 分厚いVBA辞典を買ったのですが、載っていないもので…

  • エクセル関数とVBA関数で意味が違うのは多いのか

    エクセル関数とVBA関数で意味が違うのは多いのでしょうか? セルA1に「A」と入れ、 B1に「=ASC(A1)」と入れると B1は「A」になります。(半角) VBE画面で Sub test() Debug.Print Asc("A") End Sub を実行すると、-32160 になります。 ヘルプより エクセルでは=全角 (2 バイト) の文字を半角 (1 バイト) の文字に変換します。 VBAでは=指定した文字列内にある先頭の文字の文字コードを返す変換関数です。 となっていますが 同じ関数でも全く意味違うのでびっくりしています。 こういうことは頻繁にあるのでしょうか? (VBAのASC関数のかわりのエクセル関数は、CODE関数でした。)

専門家に質問してみよう