Visual Basic

全22571件中181~200件表示
  • vbaにて、オブジェクトエラー

    ただいまvbaで、ユーザーフォームとテキストボックスを用いて、数字のからまで、でフィルタリングするvbaをつくっています。 オブジェクトエラーがでてしまうのですが、 ちゃんとsetを入れているのになぜ出てしまうのでしょうか? また、その他何かご指摘あればいただきたいです。 何卒宜しくお願い致します。 Sub 集計開始() Dim drng As Range Dim kara As String, made As String Dim cnt As Long ActiveSheet.AutoFilterMode = False Set drng = Range("A1").CurrentRegion kara = Val(usetform1.TextBox1.Text) made = Val(usetform1.TextBox2.Text) If kara <> "" And made = "" Then drng.Worksheets("●●●").AutoFilter Field:=15, Criterial1:=">=" & kara ElseIf kara = "" And made <> "" Then drng.Worksheets("●●●").AutoFilter Field:=15, Criterial1:="<=" & made ElseIf kara <> "" And made <> "" Then drng.Worksheets("kwzweb").AutoFilter Field:=15, Criterial1:=">=" & kara, _ Operator:=xlAnd, Criteria2:="<=" & made Else MsgBox "数字を入力してください" Exit Sub End If End Sub

  • エクセルVBAのIf ~ Thenステートメントで

    予約フォームの作成に挑戦しています。 予約日が2022年8月1日の時のみ、シート4に結果を記入して行きたいのですが、 Private Sub CommandButton1_Click() If ListBox1.Text = "44774" Then Sheet4.Select Range("C2").End(xlDown).Offset(1, 0).Select ActiveCell.Value = Reservationform.ListBox2.Value ActiveCell.Offset(0, 1).Value = Reservationform.ListBox3.Value ActiveCell.Offset(0, 2).Value = Reservationform.ListBox4.Value ActiveCell.Offset(0, 2).NumberFormat = Range("C2").NumberFormat Exit Sub End If End Sub で、とりあえず成功しています。 "44774" の部分を、"Sheet6のA2"だった時のみ結果を記入するようにしたいです。 " "の中身をそのまま変えて、 If ListBox1.Text = "sheet6.Range("A2")" Then や If ListBox1.Text = "sheet6.Cells(2, 1).Value" Then に変えてみましたがうまく行きませんでした。 どのようにしたら良いでしょうか?

  • VBA 印刷 コード

    今業務で困っているので 質問させていただきます。 前回は画像載せ忘れてしまい再度画像載せます。 現在 30社以上の顧客がいて それぞれ印刷のタイミングが違うので チェックボックスがTRUEの時は その顧客のシートを印刷できるようにしたいです。 (印刷ボタンをおしたら印刷) 前回は言葉足らずになってしまい混乱させてしまって 申し訳ございません。 回答いただいた皆様ありがとうございます。

  • Excel VBA シート印刷

    VBA初心者で申し訳ないですが 質問させていただきます。 32社の企業様がいて入力用のシートに 全てリンクさせているのですが 都度印刷するタイミングが違います。 そこで、チェックボックスを活用して TRUEの時は印刷できるように設定したいのですが どのようなコードがありますでしょうか? ご教授いただければ幸いです。

  • マクロを使った文字化けしないCSV取込について

    マクロを使って、csvをインポートしたいです。 しかし、csvを取り込むと、対象列が日付になってしまいます。 元データcsvには、とある一列の行毎に、0-3 10-1 22-5 0-1-2、11-14-0 などの数字と記号が並んでいます。 下記に意図したコードを入れたのですが、csvが変換されて、2022/1/3だとか、2011/1/14などとなります。 これを元のデータの通りに取り込むには、どのようなコードを差し込めば良いのでしょうか? ※設定(adodb.stream)は行わない想定です。 ご教示願います。 "Sub Csv_Import() Dim A_Sheet 'Excelファイルのシート名を入れ込む変数' Dim Csv_Import_File 'Excelファイルに取り込むCSVファイルの名前を入れ込む変数' A_Sheet = ActiveSheet.Name '現在アクティブなシート名を変数 A_Sheet に入れ込む' Csv_Import_File = Application.GetOpenFilename(""CSVファイル,*.csv"") 'CSVファイルを選択する' If Csv_Import_File = ""False"" Then Exit Sub 'キャンセルなら終了' ThisWorkbook.Sheets(""Import"").Range(""A1:OOO2000"").ClearContents '「CSVデータ取込み」シートのセル「A1~OOO2000」をクリアする' With Workbooks.Open(Csv_Import_File) .Sheets(1).Cells.Copy ThisWorkbook.Sheets(""Import"").Range(""A1"") '全てのデータをこのブックの「CSVデータ取込み」シートにコピー' .Close 'CSVファイルを閉じる' End With Worksheets(A_Sheet).Activate 'A_Sheet という名前のシートをアクティブにする' End Sub

  • 選択範囲のセルを結合して、値を代入

    画像のような工程表を、作成しております。 4行目のセルを結合して、〇月と表示させたいのですが、可能でしょうか。 5行目の日付は、yyyy/mm/dd で入力しており、表示をddとしております。 この画像ですとG4~AA4、AB4~AW4、AX4~BT4を結合して、5行目の日付から月を参照して、結合したセルに表示させたいです。 4行目の結合範囲は、都度変わるので、選択範囲で結合して、5行目の月を参照させたいのですが、可能でしょうか。

  • Excel VBA クリップボードの画像貼り付け

    こんにちは。 Excel VBAで次のようなことをしたいのですが、少し特殊な手順のため皆様のお知恵とお時間をお貸しいただけないでしょうか。 以下の作業をVBAで自動化したいと考えています。 ①クリップボードの画像を貼り付け  画像サイズを1.8cm×1.8cmに変更し、画像右角がセル『T66』に合うよう貼り付け位置を調整する ②これをExcelファイルの全てのワークシートに行う  (ワークシートのファイル名はすべて異なる) 作成したレポートに電子印を押印するのに、かなり時間がかかっているのでVBAで自動化したいと考えている次第です。 『パソコンに保存された画像』ではなく『クリップボードの画像を貼り付け』で自動化できれば、かなり時間短縮できるので上記の手順にてVBAを組んでいただけないでしょうか。 何卒、ご協力をお願い致します。

  • セルの結合後、値を代入したいです

    下のような表を作成しています 1行目  2行目・・・日付(yyyy/mm/dd)表示はdd 月ごとに1行目のセルを結合して、〇月と自動で入るようにしたいのですが、VBAで作成できますでしょうか。 2行目の日付は、1日から31日まであるわけではなく、月によって日付の数が違います。 選択した範囲のセルを結合して、下の行の日付から、月を参照して結合したセルにその月を代入することは可能でしょうか。

  • VBAでの計算式のコピーの方法

    VBA初心者です。 ExcelのVBAで例えばE3に入っている数式をコピーしておいて、数行プログラムの処理をしてから、この数式をE4に入力するにはどのようなVBAにすればよいでしょうか? すぐに貼り付ければ(.PasteSpecial (xlPasteAll))できますが、間の他の処理が入るとエラーになってしまいます。 よろしくお願いします。

  • マクロが上手く組めない

    各シートの特定のセル(1,25)にINDEXシートのハイパーリンクを 設定したいのですが、「オブジェクトが存在しません」 とエラーが表示されてしまっており、どのように修正すればいいのか 分からず、困っております。何故エラーが出たのかについてご教授頂けると幸いです。 私の書いたソースコード ********************************** ********************************** Sub INDEXLINK() Dim w As Worksheet Set w = Sheets("INDEX") Dim i As Long For i = 1 To ActiveWorkbook.Worksheets.Count Worksheets(i).Hyperlinks.Add Anchor:=Worksheets(i).Cells(1,25), Address:="", SubAddress:=w & "!c1", TextToDisplay:=w.Name Next End Sub

  • ピボットテーブルのバグ? Excel 2019

    Windows10 64ビット Excel 2019 32ビット 最新バージョン 添付画像㊧のピボットテーブルは、「計算種類:計算なし、集計方法:個数」の正常結果です。添付画像㊨のピボットテーブルは、「計算種類:親行集計に対する比率、集計方法:個数」の異常結果(最右端の総計が100%にならない)です。 何か解決策があるでしょうか? それとも、バグ修正を待つしかないのでしょうか? 心当たりのある方、教えてください!

  • ExcelVBAで特定ファイル名以外削除したい

    特定ファイルの特定ファイル名以外のCSVを削除したいのですが うまく行きません。 filePath = "\\〇〇金属csvダウンロードファイル\Pt・Pd・Rh" & "" Kill filePath & "DAILY_AverageAcrossAllTimeZone" & "*.csv" 元のファイル名 DAILY_AverageAcrossAllTimeZone_5_20_2022.csv 今日の日付 → 「_5_23_2022」以外は削除したい 宜しくお願い致します。

  • vba:セル内変更文字列の色付け

    vbaにて別ブックの一覧を参照し、 指定範囲に検索文字列が含まれる場合 文字列の置換&対象セルの色付け& 件数の表示を行うコードから、 文字列の置換&セル内の変更した文字列のみ 色付け&件数の表示を行うコードに変更したいです。 変更した文字列のみ文字色を変更したい場合、 どのようなコードに書き換えればよろしいでしょうか。 なお、現在のコードは以下の通りです。 ============================ Sub 複数条件で一括置換する() Dim 範囲 As Object Dim 対象 As Object Dim 一覧 As Variant Set 範囲 = Selection 一覧 = Workbook("確認.xlsm").Sheets("複数条件").Range("A1:B7") Dim tmp As Variant Dim mCnt As Long 中略 mCnt = 0 For Each 対象 In 範囲 For i = LBound(一覧, 1) To UBound(一覧, 1) tmp = 対象.Value 対象.Value = Replace(対象.Value, 一覧(i, 1), 一覧(i, 2)) If tmp <> 対象.Value Then 対象.Interior.Color = vbRed mCnt = mCnt + 1 End If Next Next MsgBox mCnt & "件置換しました" Set 範囲 = Nothing Set 対象 = Nothing End Sub

    • ベストアンサー
    • noname#254533
    • Visual Basic
    • 回答数12
  • 【VBA初心者】検索して行頭移動後に行末までコピー

    ユーザーの出席表の一覧があり、出席した人別に検索した結果を、別のシートの固定セルから下方向に順番に張り付けて、ユーザー単位で出席日数の合計を出したいと思っています。 VBA初心者でRangeの使い方がよく分かっておらず、以下の手順をしてみたのですが、定義エラーになってしまいうまくいきません。 ①別の表に日付順で複数人の出席状況の表があります。 ②ピポットテーブルで、出席日数が20日以上の人、5日未満の人用の集計シートに集計を、それぞれしています。 ③vbaでピポットテーブルの更新をした後、ピポットテーブルの表全体を、他のセルにコピーします。 ④その後で、出席日数が20日以上の人、5日未満の人にフラグとして1をつけて、2次元テーブルを作成します。 ⑤作成した2次元テーブルを元に、①の表から名前で該当者を検索して、該当者が見つかったら先頭列に移動して、先頭列から最後の列まで選択して、出席日数が20日以上の人、5日未満の人用それぞれの表にコピーしたいと思っています。 今回、⑤の選択を以下の様にしてみたのですが、以下だと該当者が多いと重くなってしまうので、範囲選択にしたいのですが、うまくいかないのでアドバイスいただけませんでしょうか。 If Member(Count1, 1) = b Then ActiveSheet.Cells(ActiveCell.Row, 1).Select For a = 1 To 25 ActiveCell.Copy Sheets("20日以上の人").Select ActiveCell.PasteSpecial (xlPasteValues) ActiveCell.Offset(0, 1).Activate Sheets("メンバー一覧").Select ActiveCell.Offset(0, 1).Activate Next Sheets("20日以上の人").Select ActiveCell.Offset(1, -25).Activate '先頭の列まで戻す Sheets("メンバー一覧").Select ActiveCell.Offset(1, -9).Activate 'ユーザーの列まで戻す end if 長文で申し訳ありませんがアドバイスいただけたら幸いです。よろしくお願いいたします。

  • HTMLのテーブルタグでCSVデータ表示

    HTML素人です。 色々参考にしていますが、どうしてもわからず困っています。 もし分かる方がいましたら、ご教示お願い致します。 見よう見まねで下記のようなHTMLのテーブルを作成したのですが、 この見出しの下のデータ部分から、指定の格納フォルダに保存しているCSVデータを読み込んで表示させるといったことがしたいです。 (できれば、フォルダ内に新たにCSVデータが保存されたとき、 一度読み込んだファイルの次から表示されるようにしたいです。) 大変恐縮ですが、ご教示お願い致します。 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>発注書</title> </head> <body> <header> <h1>発注書</h1> </header> </body> <table border> <tr> <th bgcolor="#00ffff">No</th> <th bgcolor="#00ffff">商品</th> <th bgcolor="#00ffff">商品名</th> <th bgcolor="#00ffff">数量</th> <th bgcolor="#00ffff">金額</th> <th bgcolor="#00ffff">合計金額</th> <th bgcolor="#00ffff">コメント</th> <th bgcolor="#00ffff">備考①</th> <th bgcolor="#00ffff">備考②</th> <th bgcolor="#00ffff">備考③</th> </tr> <tr> <td>2-1</td> <td>2-2</td> <td>2-3</td> <td>2-4</td> <td>2-5</td> <td>2-6</td> <td>2-7</td> <td>2-8</td> <td>2-9</td> <td>2-10</td> </tr> <tr> <td>3-1</td> <td>3-2</td> <td>3-3</td> <td>3-4</td> <td>3-5</td> <td>3-6</td> <td>3-7</td> <td>3-8</td> <td>3-9</td> <td>3-10</td> </tr> </table> </html>

  • VBA/HTML連携について困っております

    業務の中で、下記のようなスキームのツール作成を取り組んでいます。 エクセルデータの必要な部分を切り出してCSV形式で保存するというVBAまでは 完了したのですが、そこからフォルダ内の全CSVファイルを読み込み(吸い上げ)WEB上に表示するといったことが、どうしてもわかりません(※2番、3番)。 もし詳しい方がいましたら、ご教示お願い致します。 よろしくお願いいたします。 漠然とした質問内容で申し訳ございません。 【作成したい内容】 1.エクセルデータをCSV形式で指定のサーバーフォルダに保存 ←完了 2.サーバーフォルダ内のCSVデータを読み込みWEB上に表示 3.WEBからCSVデータをダウンロード

  • WPF コントロールの参照

    Visualbasic 2010 を利用してWindows Formアプリケーションを開発しております。 Form上にWPF互換のためElementHostを配置し、その中にUserControlを配置しUserControl内にWPFのDataGridを配置しております。 CellTemplateを利用して1つのセル内に複数のTextBoxを配置しております。 ★Main.xaml 抜粋 <DataGridTemplateColumn > <!-- 表示時のセルのテンプレートを指定 --> <DataGridTemplateColumn.CellTemplate> <DataTemplate> <local:Sien_Detail /> </DataTemplate> </DataGridTemplateColumn.CellTemplate> </DataGridTemplateColumn> ★Sien_Detail.xaml 抜粋 <TextBox x:Name="Label_0" Text="4/29(金)" HorizontalAlignment="Left" Margin="65,1,0,-19" TextWrapping="Wrap" Width="57" Background="{x:Null}" FontFamily="Arial" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" FontWeight="Bold" Foreground="Black" BorderBrush="#FFABADB3" IsReadOnly="True" IsTabStop="False" Height="18" /> <TextBox x:Name="Label_1" Text="4/30(土)" HorizontalAlignment="Left" Margin="127,1,0,-19" TextWrapping="Wrap" Width="57" Background="{x:Null}" FontFamily="Arial" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" FontWeight="Bold" Foreground="Black" BorderBrush="#FFABADB3" IsReadOnly="True" IsTabStop="False" RenderTransformOrigin="1.061,0.622" /> ★Sien_Detail.xaml.vb エラー箇所 Me.Controls("Label_0").Text = "ああ" そのTextBoxをプログラム側で制御したいと考えております。 Windows Formであれば[Me.Controls("TextBox1")]のようなコーディングで参照できるのですが、上記の場合、「Controlsはメンバーではありません」が表示されてしまいます。 どなたか改善策が分る方がいらっしゃいましたらご教授頂けますと幸いです。 以上です。

  • VBA別シートの同じ日付に値を転記したいのですが

    元データに日付・名前・開始時間・終了時間が入力されていて、人数が150人ほどいます。画像のように元データから別シートの同じ日付に開始時間と終了時間を個人別に転記したいのですが、どうすればいいか悩んでいます。 元データから転記したいデータが1つであれば下記URLを参考にできたのですが、転記したいデータが3つあり、Aさんの4/1~4/30までのあとにBさんの4/1~4/30まで…のように転記したいと思っています。 大変伝わりにくい文章で申し訳ないうえの、VBA初心者のためコピペできる形でお答えいただけると大変助かります。 どなたかご教授いただけないでしょうか…よろしくお願い致します。 参考URL:https://kirinote.com/excelvba-sheet-samedate/

  • エクセルのマクロを教えてください。

    マクロの初心者です。 特に変数が全く使えず、下記もどのように記載していいのかわからないため教えていただけないでしょうか。 ユーザーフォームのtextbox2に開始番号があります。 textbox3に本数があります。 sheet1のB12セルには開始番号が入ります。 開始番号から本数分+1したものを順番にセルに入っていくようにしたいです。 ただ、入れたいセルが横→左下(開始番号の列)→横→左下(開始番号の列)・・・としたいため、どのように書いていいのかわかりません。 地道に書くのであれば、下記のようになると思うのですが、変数を使って書く場合はどのようになるのか教えていただけないでしょうか。 Worksheets("Sheet1").Range("B12").Value = TextBox2.Value If TextBox3.Value = 2 Then Worksheets("Sheet1").Range("G12").Value = TextBox2.Value * 1 + 1 ElseIf TextBox3.Value = 3 Then Worksheets("Sheet1").Range("G12").Value = TextBox2.Value * 1 + 1 Worksheets("Sheet1").Range("B13").Value = TextBox2.Value * 1 + 2 ElseIf TextBox3.Value = 4 Then Worksheets("Sheet1").Range("G12").Value = TextBox2.Value * 1 + 1 Worksheets("Sheet1").Range("B13").Value = TextBox2.Value * 1 + 2 Worksheets("Sheet1").Range("G13").Value = TextBox2.Value * 1 + 3 ElseIf TextBox3.Value = 5 Then Worksheets("Sheet1").Range("G12").Value = TextBox2.Value * 1 + 1 Worksheets("Sheet1").Range("B13").Value = TextBox2.Value * 1 + 2 Worksheets("Sheet1").Range("G13").Value = TextBox2.Value * 1 + 3 Worksheets("Sheet1").Range("B14").Value = TextBox2.Value * 1 + 4 ・ ・ ・ End If

  • VBAでのセルの罫線を残す

    ExcelVBAで外枠罫線の入った表の最終行のセル範囲をDeleteで削除すると下罫線も消えてしまいます。 罫線を消さないように削除できませんか? 削除後下罫線を引きなおさないとだめでしょうか?