• ベストアンサー

ExcelVBAで

sakenomoの回答

  • sakenomo
  • ベストアンサー率52% (35/67)
回答No.9

#8です。 >自身 自信でした。(~_~;)

関連するQ&A

  • ExcelVBA select case 値設定

    ExcelVBAのSelect Caseで Select Case 数式または文字列式 Case 値1, 値2, 値3  処理 Case Else  処理 End Select のようにカンマで区切ると複数の値を指定できるはずです。 この値1, 値2, 値3のところに別のシートのA1、A2、A3に入っている値を設定したいのですが そのようなことは可能でしょうか?(A1→値1 A2→値2 A3→値3) 5年ぶりにVBAを書いていますが、びっくりするぐらい忘れています。。。

  • ExcelVBAで、フィルタリング後の一覧から値を取得

    ExcelVBAで、フィルタリング後の一覧から値を取得方法について質問です。 100件のデータから、フィルタの条件で10件程度に絞り込んだ場合、その列の値を、配列に突っ込みたいのですが、この場合、どうすればよろしいでしょうか? もうちょっと、詳しく↓ ↓フィルタリング条件 Range("B7").Select Selection.AutoFilter Field:=2, Criteria1:="=?n????", Operator:=xlAnd ↓取得したい値 Range("B8").Select から B列でフィルタリングのデータが存在するまで。 ※現状 下セルに移動するために、「Selection.Offset(1, 0).Select」を使っていたのですが、フィルタリングの条件を無視して行を選択されてしまいます。 この場合の、コマンドを教えていただければ助かります。

  • ユーザー定義関数に特定のセルの値をかける

    IF(シート1!C2>0,名目(A2)*E2,6) 上記の式のように一定の条件下で、ユーザー定義関数に特定のセルの値をかけた 値を表示させようとしています。 しかしなぜか0が表示されてしまいます Select Case KATA Case Is = 1 名目 = E * 34 のようにユーザー定義関数の中にセル式をかけるとしても 0が表示されます どうしてでしょうか

  • エクセル VBAについて。その2

    以前、こちらの掲示板でお世話になった者です。   Private Sub Worksheet_Change(ByVal Target As Range) Select Case Target.Address Case "$C$5" Select Case Target.Value Case 1 Range("C6").Value = 24 Range("D5").Value = 600 Range("D6").Value = 0 Range("E5").Value = 400 Range("E6").Value = 0 Case 2 Range("C6").Value = 32 Range("D5").Value = 1000 Range("D6").Value = 0 Range("E5").Value = 500 Range("E6").Value = 0 End Select Case "$D$5" Select Case Range("C5").Value Case 1 Range("D6").Value = (600 - Range("D5").Value) / 25 Case 2 Range("D6").Value = (1000 - Range("D5").Value) / 25 End Select Case "$E$5" Select Case Range("C5").Value Case 1 Range("E6").Value = (400 - Range("E5").Value) / 50 Case 2 Range("E6").Value = (500 - Range("E5").Value) / 50 End Select と、上記のようなマクロがお手伝いしていただいた結果、完成しました。 C5に1を代入した場合 D5 = 600 D6 = 0 E5 = 400 E6 = 0 C5に2を代入した場合 D5 = 1000 D6 = 0 E5 = 500 E6 = 0   C5に1を代入しており、D5の値を500に下げた時 D6 = 4 (D5の値を100下げる毎にD6の値に+4 ) (D5の値を100上げる毎にD6の値に-4 ) C5に1を代入しており、E5の値を300に下げた時 D6 = 4 (E5の値を100下げる毎にE6の値に+4 ) (E5の値を100上げる毎にE6の値に-4 ) <以下、C5に2を代入した時のケースを省略。>   というような意味合いのマクロになったと思いますが、少々困ったことが発生しました。 (D5の値を100下げる毎にD6の値に+4 ) (D5の値を100上げる毎にD6の値に-4 ) (E5の値を100下げる毎にE6の値に+4 ) (E5の値を100上げる毎にE6の値に-4 ) この部分を (D5の値を100下げる毎にD6の値に+4 ) (D5の値を100上げる毎にD6の値に-8 ) (E5の値を100下げる毎にE6の値に+4 ) (E5の値を100上げる毎にE6の値に-8 ) に変更したいのですが、計算式がわかりません(?ω?) どなたかご指導のほどよろしくお願いします。

  • VBAで成績表を作りたい

    VBAについては全く初心者ですが、自分なりに調べて成績表を作ってみました。 A列個人の名前、B・C・D列にそれぞれ1~3回目のテストの総得点が入っていとして、E列に得点のランク別にA~Mの成績を出します。 Select Case を使って成績を出すようにしたいのですが、1~3回目のテストの中で、1番高得点だったもので判定したいのです。 また、全員が3回ともテストを受けているとは限らず、得点が空欄になる人もいます。 具体的には A列   B列    C列   D列   E列 ○さん  580点 620点 530点  C列の得点で判定 △さん  550点 580点 600点  D列の得点で判定 □さん  600点      590点  A列の得点で判定 1回分のテストの得点だけでは Select Case を使って上手く判定できたのですが、3回分の中から選択させる方法がわかりません。 関数を使う方法もあると思いますが、今回はVBAを使って作りたいと思います。 よろしくお願いします!

  • Select Caseステートメント 「Is」

    VBAについて質問です。 http://excelvba.pc-users.net/fol6/6_2.html の Sub test() Dim intPoint As Integer intPoint = InputBox("点数を入力してください") Select Case intPoint Case Is >= 80 MsgBox "優です。" Case Is >= 70 MsgBox "良です。" Case Is >= 60 MsgBox "可です。" Case Else MsgBox "再テストです。" End Select End Sub は、 なぜ Sub test2() Dim intPoint As Integer intPoint = 75 Select Case intPoint Case intPoint >= 80 MsgBox "優です。" Case intPoint >= 70 MsgBox "良です。" Case intPoint >= 60 MsgBox "可です。" Case Else MsgBox "再テストです。" End Select End Sub では、だめなのでしょうか? test2を実行すると、 Case Elseの MsgBox "再テストです。" になってしまいます。 本当は、"良です。"が正しいのに。 testをF8でステップインしながら実行した時に、 「Case Is >= 80」 の来た時に、isにカーソルをあてても、InputBoxで入力した数値が表示されません。 なぜ、この場合、Case intPoint >= 80 ではダメなのか理由をご教授ください。ご回答よろしくお願いします。

  • ExcelVBAのマクロを使ってテキストファイルの文字を読み込む

    お世話になります 表題のとおりなのですが、ExcelVBAのマクロを使ってテキストファイルの文字を読み込むマクロの書き方を探しています。 具体的には、ExcelVBAで作ったボタンを押すと、あるテキストファイル(TEST.txt)に書かれている文字列をExcelVBAで取得して、それをセルに表示させるものです。 VBA関連のサイトがあまり無く困っています、宜しくお願いします。

  • ExcelVBAで重複しているもの以外を抜き出したい

    Excelで以下のようなことをしたいのです。     A 1  みかん 2  りんご 3  みかん 4  めろん 5  りんご とあったとします。 この表から、重複したものははぶいてカウントしたいのですが、 どのようにしたらよいでしょうか? 【理想結果】    C     D 1 みかん   2 2 りんご    2 3 めろん   1 実際に試してみたコードは以下の通りです。 -------ここから---------- Dim i As Integer Dim i2 As Integer Dim Count As Integer Dim Name As String Dim Last As Integer For i = 1 To 5 'A列の1行目から5行目まで。 Last = Cells(3).CurrentRegion.Rows.Count 'C列の最終行を取得。 Name = Cells(i, 1) 'NameはA列の値。 For i2 = 1 To Last Select Case Name Case Is = Cells(i2, 3) Cells(Last + 1, 3) = "" Case Is <> Cells(i2, 3) Cells(Last + 1, 3) = Name End Select Next Next 上記コードを試すと、C列の1行目があいて2行目からA列をそのまま写した状態になってしまいます。 Ex2000です。

  • ExcelVBAでセルに入力されている種類と文字列を表示したいのですが

    ExcelVBAでセルに入力されている種類と文字列を表示したいのですが… Excelで、例えば下のように文字が入力されているとき、 A1:あああ B1:あああ C1:いいい D1:あああ E1:ううう F1:いいい このときにセルに入力されている種類(数)とその文字(この場合だと、3種類:『あああ』、『いいい』、『ううう』)をメッセージボックスで表示させたいのですが、VBAで作るのは可能でしょうか?

  • 文字の回数を数えるには。

    お世話になります。 エクセルの1つのセルに優、良、可のいずれかが入っており、その優・良・可の回数を数えたいのですが、どのようにしたら良いでしょうか? 文字を数える関数はあるのでしょうか? すみませんが教えてください。