• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Excel VBA の作り方について【初心者】)

Excel VBA の作り方について【初心者】

kagakusukiの回答

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.2

 御質問の様な処理を行いたいシートのシートモジュールに、下記のVBAの構文を入力されると良いと思います。(尚、「シートモジュール」に構文を入力する方法が、もしも分らない場合には、補足コメント欄等を使用してその旨をお尋ね頂ければ、改めて回答致します) Private Sub Worksheet_Change(ByVal Target As Range) Dim c As Range, myRange As Range Set myRange = Intersect(Target, Columns("B")) If myRange Is Nothing Then Exit Sub For Each c In myRange With Range("D" & c.Row) If TypeName(c.Value) = "Double" And c.NumberFormatLocal Like "*:m*" Then .Value = Hour(c.Value) * 60 + Minute(c.Value) Else .ClearContents End If End With Next c End Sub

noname#245127
質問者

お礼

できました!! ありがとうございます!!

関連するQ&A

  • Excel VBA の作り方について【初心者】

    Excel VBA の作り方について質問させてください。 A1セルに「営業部【山本】」と入力されています。 B1セルに「01:35:24」(タイム)と入力されています。 (1)D1セルに「山本」を抜き出して表示 (2)E1セルに「95」(分数)で表示 (3)A2以降で同じ作業の繰り返し(最終入力列まで) というVBAを作成しております。 Sub macro1() '行数確認 nr = Range("A1048576").End(xlUp).Row For i = 1 To nr '名前抜き出し x = Range("A1").Offset(i - 1) j1 = InStr(x, "【") j2 = InStr(x, "】") Range("D1").Offset(i - 1) = Mid(x, j1 + 1, j2 - j1 - 1) '分表示 x = Range("B1").Offset(i - 1) Range("E1").Offset(i - 1) = Int(x * 24 * 60) Next i End Sub ここまではプログラムが完成しています。 この後、 (4)C列セルに入力されている数値をF列セルにそのまま入力 したい場合には、どの部分にどのようなプログラムを追加すればよいでしょうか? よろしくお願いします。

  • Excel(文字列操作)についての質問です。

    今、Excelで、最初の文字とアンダースコアのあとの文字を取り出す方法を考えています。 (例:ABC_DEF_GHI→ADG) しかし、アンダースコアが何個あるかわかりません。 現在、A1セルに、ABC_DEF_GHIと入力されているとき、 =LEFT(A1,1) & MID(A1,FIND("_",A1,1)+1,1) & MID(A1,FIND("_",A1,FIND("_",A1,1)+1)+1,1)・・・・・ と入力すると取得は出来るのですが、アンダースコアの数が変更になると対応できません。 関数、VBAどちらでも結構ですので、よろしくお願いいたします。

  • エクセルのVBA 条件分岐について

    エクセルのVBAで、条件分岐プログラムを考えております。 セルA1に入力された数値が、 2.0以下は"B1セルの値をC1セルへコピー 数値が 5.0以上の場合は"B2セルの値をC1セルへコピー それ以外の場合は”対象外”と表示させたいのですが ご教授お願いします。 又、条件分岐後の部分『C1セルへコピー』の部分を"マクロ1を実行" "マクロ2を実行"というように、変える様な事も出来ますでしょうか? 以上よろしくお願いします。

  • Excel VBAで初心者です。

    Excel VBAで初心者です。 他のExcelファイルのワークシートのデータを選択して取得したいのですが Aファイルのシート1のセルA3に入力されている月が4~11と入力されていた場合 ファイル名「B」を、月が6~1が入力されていた場合、ファイル名「C」のデータを 見にいき、更に Aファイルのシート1のセルA1に入力されている西暦と、セルA3に入力されている月が B又はCファイルのシート名[西暦(月)]もしくは平成○年○月度と表示されている(2001/8/1)月 からマイナス1したものとマッチさせて、あったらその中のセルデータを Aファイルに表示させたいと思っています。 今はファイル名と場所を強制的に開くように指示してある状態ですが、 上記の希望のように選択してデータを表示するようにしたいのです。 VBAでは無理なのでしょうか? もしやり方がありましたら、ご指導いただきたくお願い申し上げます。

  • Excel で別シートのセル値を表示させる(初心者)

    Excel で一つ前のシートにあるセル値を表示させる。 例えば"Sheet1"と"Sheet2"が有るとして"Sheet2"のセル"A1"へ "Sheet1"のセル"A1"の値を表示させるには、=Sheet1!A1 と入力しますが、 この<Sheet1>の部分だけを別のセル "A2" で入力した値に変更したいです。 (気持ちとしては、A2!A1) どの様にすれば良いでしょうか? 常にシートをコピーして作成し、常に一つ前のシートの同位置セルの値を 表示させたいのが狙いで、シート名は数値に設定して "A2"へ MID(CELL("filename",$A$1),FIND("]",CELL("filename",$A$1))+1,31)-1 などを入れて方法があれば作成しようと考えています。 マクロも分かりません、関数など何か方法があればご教授お願いします。

  • エクセル2010 VBA初心者です

    エクセル2010で30日分の日報を作成しています 日付の入力をカレンダーから選択したくて、Microsoft Date and Time Picker Control6.0 を使用して、日報1日目の日付のセルにカレンダーから日付を入力する事が出来るようになりました。 これを30日分のそれぞれの日付のセルに入力出来るようにするにはどうすれば良いでしょうか? 単純にコピーして貼り付けても出来ませんでした。 VBAやマクロは初心者ですが、教えていただける方がいましたら宜しくお願い致します また補足が必要な物があれば教えてください 宜しくお願い致します

  • エクセルVBAについて

    VBAに関しての質問です。 A列に日付(10行目から) B列にその日の売上が 300行(300日分)入力されてる表があるとします。 C列にその日を含めた過去N日間の最大の売上を表示させたいのです。 例えば 過去5日間なら過去5日間の最大売上げを毎日表示させたいのです 当然この場合は5日間なのでCの13行目までは空白になります。 「N」日はA1セルに任意の日数で入力することによって希望の期間の数値 が表示できるようにしたいのです。 関数を使ってできるのいですが、事情がありましてエクセルのマクロの 繰り返しのプログラムでやりたいのですが VBAに関しては全く素人ですの。どなたかご教授願えませんでしょうか よろしくお願いします。

  • エクセルのマクロ 並んだ数字の幾つかを抜き出してその合計を計算させたいのですが・・

    エクセルのマクロ(VBA)について、教えてください。 セルのA1からA2・・・A1000までに「01,03,06,08,20,」のように5つの数字がカンマで区切られて入力されています。 1.この5つの数字をb.c.d.e.f.の1から1000のそれぞれのセルに配置するマクロ 2.この5つの数字の数字の合計をb1から1000のセルに表示させるマクロは難しいでしょうか? MID関数をひとつづつのセルに入れていたのですが、マクロでできれば効率が良いと思い手引書等で考えたのですがよく分からないのです。

  • エクセルVBAでワークシート関数のようにしたい

     例えば、セルA1に日付を入力して、セルB1に関数WEEKDAYが入力されていると、すぐセルA1の値を返してくれますが、これと同じことをVBAで再現したいのですが、可能でしょうか?  マクロやVBAでWEEKDAYを記述しても、「ツール」→「マクロ」→「マクロ」か「VBA」でやらないとA1の値をB1に返せないので、A1に日付を入力した瞬間、B1に値を返したいのですが、よろしくお願いします。

  • エクセルのVBAで教えてください

    エクセルのVBAで教えてください、セルA1の値をマクロボタンを押すたびに、セルC1から順番にC2・C3・C4・・・・と下に自動的に入力するVBAを教えてください。