• 締切済み

数字の下数桁を削除するVBAを教えてください

EXCELでの構文を宜しくお願いいたします。 sheet1のA1~A10に6:30~13:00(6.5H)とか13:00~20:00(7.0H)がランダムに入力されています。このデータをsheet2のB1~B10に(6.5H)(7.0H)を削除して(右6桁を削除になるのでしょうか)コピーをするVBAでの構文を宜しくお願いいたします。

みんなの回答

  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.3

シンプルに、コピーし削除するだけです。 sub macro1() worksheets("Sheet1").range("A1:A10").copy destination:=worksheets("Sheet2").range("B1") worksheets("Sheet2").range("B1:B10").replace what:="(*)", replacement:="" end sub

  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.2

Sub XX() Dim RG As Range Dim Rs As Variant For Each RG In Range("A1:A10") RS = InStr(1, RG, "(") If RS > 1 Then RG.Offset(0, 1) = Left(RG, RS - 1) End If Next RG End Sub

  • washi001
  • ベストアンサー率41% (158/380)
回答No.1

要は、( )を取るんですね。 下記を、sheet2のB1に書いて、B2からB10へコピーすればよいかと。 右6桁削除されます。 =left(sheet1!A1,len(sheet1!A1)-6)

vanpire99
質問者

補足

有難うございます。これはEXCEL関数ですので折角ですがVBAでお願いしたいのです

関連するQ&A

  • エクセルで数字の下1桁を見て並び替える

    エクセルで下記の様な数字が並んでいます。 A列の下1桁の数字は上から順に増えていて、ある数字で1に戻りまた増えています。 その数字は毎回同じではなく、6までの場合もあれば10までの場合もあります。 下記の例では上から6行、次は4行、次は7行と下1桁の数字によってグループ分け出来ますよね? それで上から6行目までのB列の値(462~530)をコピーしてSheet2のA1から横方向に並べます。 その次は7行目から10行目までのB列の値(356~487)をコピーしてSheet2のA2から横方向に並べます。 その次も同じように並べます。 B列が空欄の場合もありますが、その場合はそのままSheet2にも空欄のセルを作ります。 1グループ全部のB列が空欄でもそのままSheet2に空欄の行を作ります。 この動作をマクロで出来る式を教えて頂けないでしょうか? A列          B列 0213240101     462 0213240102    387 0213240103    556 0213240104    585 0213240105    536 0213240106    530 0213240201    356 0213240202    632 0213240203    486 0213240204    487 0213240301    586 0213240302    670 0213240303    619 0213240304 0213240305    645 0213240306    487 0213240307    651 0213240401 0213240402 0213240403 0213240501    455 0213240502    623 0213240503    411 Sheet2 A列   B列    C列   D列    E列    F列   G列 462    387    556    585    536    530 356    632    486    487 586    670    619            645    487    651    455    623    411

  • VBAで4桁の16進数から16桁の2進数変換

    VBAで4桁の16進数(FFFFとか)を2進数(1111 1111 1111 1111とか)に変換して変換した2進数を1桁づつセルに表示させるには、どうしたらいいでしょうか?ワークシート上だと8桁までしか対応してないようで、左右8桁づつわけてHEX2BINを使ってとりあえず変換する事は、できましたがVBAでマクロを組んで行いたいです。例えばA1に16進数を入れA2~P2に2進数を1桁づつ表示させたいです。よろしくお願いします。

  • エクセル VBA

    最終行から順番に下へ同列で入力するVBAを教えて下さい。 EXCELのVBAで教えて下さい。 シート1のA列にはB列が入力されると自動入力されるNo.があり、C~G列もB列が入力されると自動入力されます。 B列には日付が、H列には3~4桁の数字が入力したいのですが、 入力行は必ず最下行のセルB、Gな為、VBAでフォームを作成し、 入力実行ボタンを押すことにより、最下行のセルB、Gに反映されるように したいです。 又、上記入力後に、シート2のH~N列をコピーして、シート3のA~G列に値のみの貼り付けを行い保存した後、シート3のA~G列をコピーして csvファイルを作成して保存したいです。 一連の流れを、フォームの入力実行ボタンを押すことで実行したいのですができるのでしょうか? 宜しく御願い致します。

  • エクセルVBA初心者です。マクロを組んでください。

    エクセルVBA初心者です。組んで欲しいマクロがあります。 Sheet 1に13桁を入力するセル sheet 2に検索したいデータ 手順としては、 Sheet 1のセルにデータを入力 →13桁以上でマクロが開始(されるように設定します) →Sheet 1のセルと同じ数列をSheet 2の列Aから検索 →該当のセルを含む行をSheet 3にコピー →Sheet 1の入力セルの少し下にもコピー (確認用) というのを一回一回ずつやりたいです。 できれば作業中マウスやキーボードを触りたくないので、そのために、マクロの終わわりには入力セル内の消去、マクロの始まりには確認用でコピーした行の削除もつけて下さい。 検索するSheet 2には同じデータが含まれているので、出来ればひとつずつSheet 3にコピーしたいので組み込んで頂けると幸いです。 よろしくお願いいたします。

  • VBAについての質問です、お願いします。

    VBA初心者のものです。 Excelで毎日コピペが大変なので、VBAをネットで調べるもののまったく上手くいきません。 どうかシステムが得意な方、教えて頂けませんか? 要件は Bデータ.xlsとCデータ.xlsとDデータ.xlstとEデータ.xlsの各sheet1のA1からZ100セルの データをAデータ.xlsのsheet1に各データ順にコピー&ペーストしてならべたいのです。 イメージは、 Aデータのエクセルを開いて、マクロボタンを押す。 そうすると、各B・C・D・Eのエクセルが自動的に開いてそれぞれのsheet1のA1からZ100セル をコピーします。 各B・C・D・Eのエクセルが自動的に閉じます。 各B・C・D・Eのエクセルの各データが、 Aデータのsheet1に、すべてのデータが順にコピーされる手順です。 できれば、ファイルサーバーにエクセルを保存しているので、 その点も加味いただけると嬉しいです。 (初心者なので、マクロの構文を書いて頂ける場合に、ファイルとかシートを自分で 設定する場合があるときには、説明文を頂けると嬉しいです。) 以上、宜しくお願い致します。

  • VBAの構文をお願いします Excelです

    宜しくお願いいたします。 Rigth関数をVBAで行うときの構文教えてください。 Sheet1のA1セルに123456があります、Sheet2のA1セルに右から2つすなわち56をコピーするにはどのように構文すればよいのですか。Lefe、Midもこれが分かればできると思います。

  • ExcelのVBAにてキーになるものを入力してデータを振分けたい

    2つのシートがあり、sheet2に振分けるデータ(下表)を作成しておきます。   (列)  1   2   3  (行)   1     A   B   C  2     ○   △   ×  3     ア   イ    ウ (1)sheet1にコンボボックスにてAを入力する。A、B、Cは、それぞれ決められたセルにコピーされる。 (2)sheet1にコンボボックスにて○を入力する。○、△、×は、それぞれ決められたセルにコピーされる。 (1)と(2)のコピーされる場所は、同じ場所です。 というようなものをExcelのVBAにて作成したいのですが、VBAは、あまりよくわかりません。 宜しくお願い致します。

  • EXCEL VBAで

    EXCEL VBAで シート1のA2~G2までの列にA,B,C,D~と題名があり、それぞれの下の行には数字が並んでます。シート2のA2~G2までの列にもA,B,C,D~と題名がありますが、ランダムに並んでます。シート1のAの行を、シート2のAの行に、BにはBへという風にコピーをさせるにはどのようにすればよいでしょうか。またシート1A~Gのどれかが欠けている場合もあります。その場合はシート1にあるもののみコピーすることとします。 わかりにくいかも知れませんか、どうかよろしくお願いします。

  • EXCEL2010 VBAで空白行以外をコピー

    EXCEL2010を使用しています。 シートAではセルA1からA10に順にデータを入力していきます。 A1からA10のすべてにデータを入力する場合やA1からA4のみデータを入力する場合等があります。 このA1からA10のデータをシートBのA1からJ1にコピーしたいと思っています。 空白以外のデータをコピーして、コピー後はシートBのA1:J10で空白の列は削除したいと 思っています。 (例) シートA A1 ○ A2 ○ A3 × A4以降すべて空白 シートB A1 ○ B1 ○ C1 × D1からJ1までは列ごと削除 これをVBAで作成したいのですがどなたか詳しい方押してください。

  • セルで5桁の数字を超えると自動で右に移動

    いつもお世話になります。 B1~H2のそれぞれに、5桁づつの数字を入れ、全部で31桁の数字を入力します。 例えば、 B2は「12345」、C2は「67891」・・・最後H2は「3」という具合に入力します。 数字は1~6の数字のみを使います。 その時にB2に5桁を入力すると、自動的に右隣りのC2に6桁目から入力出来るように、以後、EnterやTabキーを押さずに、5桁入力すると右に移動して行き、31桁入力出来るようにしたいのですが、そのような事は可能でしょうか? また、同じBOOK内の他のシートはEnterで下に移動する方が都合良いので、Enterキーの設定で、「右に移動」の設定はしたくありません。 可能でしたら、どなたかご教授願えないでしょうか? ちなみに、そのような行は2~32行目まであります。 お忙しいところを申し訳ありませんが、よろしくお願いいたします。

専門家に質問してみよう