Visual Basic

全22570件中101~120件表示
  • Vb

    VB.NETってフリーでダウンロードできるんですか?

  • VBA指定した日付に条件が合えば文字を入れたい

    おはようございます。 すいませんが行き詰りましたので 皆様にご教授お願い致します。 やりたいこと sheet1シート内の情報 B2:CB2セルまで日付が入っています。 (B2には3/1、C2には3/2と連続して日付が入っています。) B3:CB3セルまで空白行が有ります。 B4:CB4セルまでどれかに”平日”という文字が有ります。 sheet2シート内の情報 E4:AI4セルに数字 (E4は1、F4は2・・・AI4は31と順番に数字が入っています。) E5:AI5セルには、空白行が有ります。 この中で もし、sheet1のB2:CB2セルまでの間で3/から始まる文字列が有り B3:CB3セルまでの間で""空白が有り B4:CB4セルまでの間で"平日"という文字が有れば (すべての条件が合えば) E4:AI4の数字に合うセル 例:3/1ならE4セルが1なのでE5セルに”勤務という文字”   3/5ならI4セルが5なのでI5セルに”勤務という文字”   3/31ならAI4セルが31なのでAI5セルに”勤務という文字” を入れていきたいのですが 下記コードでは sheet1のB2セルに3/1があったときのみには sheet2のE5セルに”勤務”という文字が入るのですが 実現したいのは 例えば、sheet1のD2セルに3/1から始まっても E5セルに”勤務”と反映させたいです。 このコードでは、D2セルから3/1、E2セルに3/2という形だと sheet2のG5セルとH5セルに”勤務”と入ってしまいます。 変数kの値をいちいち変更したら 希望通りに動くのですが 出来れば、変数kの値を変更させないように うまくsheet1のB2:CB2のどれかに日付が入っても sheet2のE5:AI5の位置に条件が合えば”勤務”っていう文字を 入れたいです。 何回やってもわからなかったため すいませんがコード記載していただけますと 大変助かります。 回答よろしくお願いします。 Sub test() Dim ws1 As Worksheet Set ws1 = Worksheets("Sheet1") Dim ws2 As Worksheet Set ws2 = Worksheets("Sheet2") For k = 2 To 80 If ws1.Cells(2, k).Value Like "3/*" Then 'もし、(sheet1)シートのB2:CB2セルまでの間で3/から始まる文字列が有れば If ws1.Cells(3, k).Value = "" Then 'もし、B3:CB3セルまでの間で""空白が有れば If ws1.Cells(4, k).Value = "平日" Then 'もし、B4:CB4セルまでの間で"平日"という文字が有れば ws2.Cells(5, k + 3).Value = "勤務" ' End If End If End If Next k End Sub

  • SaveAsが Do~Loopでうまくいかない

    Sub Dim G_name As String G_name = Range(”I15”) 'l15は、aaa.xlsx ~略~ Workbooks(G_name).SaveAs filename:=(アドレス略) End Sub これだと保存され、 Sub Dim G_name As String、file_name As String G_name = Range(”I15”) 'l15は、○○○.xlsx file_name = Dir(○○○) Do While file_name <> ”” ~略~ Workbooks(G_name).SaveAs filename:=(アドレス略) Loop End Sub これだとSaveAsの所でエラーになります。 エラー解消方法、何かあるでしょうか

  • VBAの連番の振り方について

    セルC1からC10まで罫線の表があり、inputboxで入力された数値だけD列以降にコピペされ、 セルC1をスタートに C1が1、D1が2、E1が3・・・といったように、連番を振りたいのですが、 下記プログラムで実行すると、inputboxで入力された数値分、表はコピペされますが、 肝心な連番が振られず1行目は空白のままになってしまいます。 ------------------------------------------------------------------------------ Dim cp As Long, x As Integer Dim ren As Integer 答え1 = InputBox("拠点数を入力してください。", "拠点数入力") ia = Val(答え1) Application.ScreenUpdating = False Range("C1:C10").Copy For cp = 1 To ia - 1 Cells(1, x + 4).PasteSpecial x = x + 1 Next With Application .CutCopyMode = False .ScreenUpdating = True End With ren = 1 Range("C1").Select Do While ActiveCell.Offset(0, 1).Value <> "" ActiveCell.Value = ren ren = ren + 1 ActiveCell.Offset(1).MergeArea.Select Loop どう修正すれば良いのか分かりません。 宜しくお願い致します。

  • Excel 集計フォーム

    ユーザーフォームを使用して、部署1と部署2にチェックが入っていて数量欄に数字が入っている場合、赤枠のところに入力されていく仕組みを作りたいのですが、コードの書き方などお教えいただけないでしょうか。 色々調べているのですが検索の仕方が悪いのか解決できず…。 お手数をおかけ致しますが、よろしくお願い致します。

  • VBAで値だけコピー

    EXCEL VBAで別ファイルの値をコピーして貼り付けをしているのですが、セルの中の一部のみを貼り付けしたいと思いますが、 どのようにしたらいいのでしょうか? 関数では取り出すことができたのですが、できればVBAの中で処理できればと思っています。 =IFERROR(MID(Z2,FIND("6",Z2),FIND(" has",Z2)-FIND("6",Z2)),"") やりたいこと 1.左から見て6~空白までの値のみを貼り付けしたい 2.エラーの時は空白にしたい Sub SO_Copy() Dim ws As Worksheet Set ws = Worksheets("Sheet1") Dim FilePath, FileName As String 'C8&C9にファイルパス/ファイル名を入力 FilePath = ws.Range("C8").Value & "\" & ws.Range("C9").Value FileName = ws.Range("C9").Value Workbooks.Open FilePath 'Z2~コピーして、"メール送信.xlsm"のD11以降に値だけ貼り付け Range("Z2", Range("Z2").End(xlDown)).Copy Windows("メール送信.xlsm").Activate Range("D11").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Workbooks(FileName).Close End Sub

  • AccessからExcelにコピペするコードの作成

    Accessのカレントレコードをコピーし、特定のExcelブック(仮称A)にペーストするVBAコードを書いてみたのですが、 ペーストが上手くできず困っています。 (下記コードの「'任意のExcelブックAの、シートB内のセルA2にペーストする」の部分です) ------------------------------- '任意のExcelブックAを開く Dim Objxls As Object Dim strFile As String Dim wb As Object strFile = "C:\Users\ExcelブックAのある場所" Set Objxls = CreateObject("Excel.Application") With Objxls .Visible = True .Workbooks.Open strFile End With 'Accessのカレントレコードを選択 DoCmd.RunCommand acCmdSelectRecord 'コピーを実行 DoCmd.RunCommand acCmdCopy '任意のExcelブックAの、シートB内のセルA2にペーストする With Objxls.Workbooks(Objxls.Workbooks.Count) .Sheets("B").Range("A2").Paste End With ------------------------------- VBA初心者のため、複数のサイトを参考にしながらコードを作成しています。 説明が不足している部分がありましたら申し訳ございません。 どなたか知恵をお貸し頂けますと助かります。

  • VisualStudio 2013 日本語化

    Windows11にてVisualStudio 2013を利用したいと考えております。 環境構築を行っているのですが、以下の点が改善できない状況です。 ■環境構築 (1)Windows11にVisualStudio2013 community Edition(Update4)  をインストール→正常に完了 (2)日本語化パッケージのインストール  ※2013 Language Pack - 日本語  →インストール中にエラー発生   ■エラー内容  パッケージソースが見つかりません。 Webで改善方法を検索したところ、一度アンインストールしてから実施すれば良いとの記載もあったため、以下コマンドを実施致しました。 \vs_langpack.exe /uninstall 上記コマンド実行後も症状は改善しませんでした。 同様のインストーラを利用してWindows8.1では正常に動作する事を確認致しました。 お手数おかけ致しますがWindows11において正常に日本語化する方法が分る方がいらっしゃいましたらご教授頂けますと幸いです。 以上です。

  • LabelとTextboxの自動計算を希望

    ComboBox2のリスト選択で連動でlabel2とlabel12の数字変更 TextBox2には数字入力 Label12(数字) x TextBox2(数字) = Lavel22(乗算合計)で Label12変えないで、TextBox2の数字変えた時はLabel22の合計変動 Label12の数字変えて、TextBox2の数字変ない時はLabel22の合計変わらない現状です。 Private Sub TextBox2_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer) Select Case True 'TextBox2かLabel12が空白の時Label22空白 Case TextBox2.Value = "" Or Label12.Caption = "" Label22.Caption = "" Case Else 'TextBox2とLabel12が数字の時Label22はTextBox2の数字とLabel12数字を乗算する If IsNumeric(TextBox2.Value) And IsNumeric(Label12.Caption) Then _ Label22.Caption = TextBox2 * Label12 'Label22に数字がある時Label29に合計表示 Label29.Caption = Label22 End Select End Sub ComboBox2_change()作って、TextBox2_KeyUp書いてる内容を書けば動くでしょうが・・・ 同じ内容2つ書かないで動く方法があれば非常に助かります。 いい方法無さそうならComboBox2_change()作って書こうかな・・・と思ってます

  • なぜかフォームは上書きされません。

    こんにちは。 下記のようなフォームにボタンを追加し、セルにデータを書き込み、最後に上書きするマクロを作ってみました。 セルのデータは上書きされますが、なぜかフォームは上書きされません。フォームの表示で追加したボタンも表示されます。 どなたかご教示願います。 -------------------------------------------- Sub testVBA() Dim WOBJ As Object With UserForm1 Set WOBJ = .Controls.Add("Forms.CommandButton.1", "MyCom", True) End With Range("A1").Value = "aaaaaaaaaaa" ThisWorkbook.Save UserForm1.Show End Sub

  • 【VBA】エクセルで文字置換

    いまは1つ1つ手作業でしており時間が大変掛かっています。 VBAでやろうとしたものの挫折しております。 文字の置換を連続して、VBAで自動で出来ないかと思っております。 Sheet1に「商品名」と「商品説明」 Sheet2に「検索する文字」と「置換後の文字」 (やりたいこと) Sheet2の置換方法に従ってSheet1の文字を置換する Sheet2のすべての置換方法をSheet1のすべての商品(商品名、商品説明共に)に対して処理する 置換処理した後は、処理件数をSheet2のC列に入力する 可能であれば、教えて頂きたいと思います。 宜しくお願いします。

  • エクセルVBAで連続して文字置換をしたい

    シート2に「検索する文字」と「置換後の文字」を入力しておく マクロで自動的にシート1の文字列を文字置換していく 置換作業は、シート1の商品全部を対象として、 シート2に入力している文字列を1つずつ置換作業をして 処理した後は、処理件数を残していく。 シート2に入力している文字列の数だけ全部、処理する。 現状は、商品数が約2万個で検索する文字列は100個ほどあります。 (今後はさらに増える予定です。)

  • vbaのclassモジュールを呼び出し

    現在フォームに書いてるcode ーーー ’シート1のB列250件くらい有る(名前)→コンボボックスに漢字1−2文字入れて表示件数を絞り込み→comboboxにリスト表示している。 ーーー ーーーーー Private Sub ComboBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer) Dim i As Integer '押されたキーが、Enterキー以外は終了 If KeyCode <> vbKeyReturn Then Exit Sub 'テキスト部分が選択されている場合 If ComboBox1.ListIndex = -1 Then ComboBox1.Visible = False 'コンボボックスを非表示 ComboBox1.Visible = True 'コンボボックスを表示 ComboBox1.List = Array() 'コンボボックスのリストをクリア '値を部分一致で抽出 For i = 2 To Sheets("Sheet1").Cells(Rows.Count, "B").End(xlUp).Row If InStr(Sheets("Sheet1").Cells(i, "B"), ComboBox1.Text) > 0 Then 'コンボボックスのリストに追加 ComboBox1.AddItem Sheets("Sheet1").Cells(i, "B") End If Next End If KeyCode = 0 'コンボボックスをフォーカス ComboBox1.DropDown 'リストを表示 End Sub ーーーーー ーーー ’上記Combobox1で表示された内容の同行&別列で対応するセル内容をLabelに表示させたい、が「行 = 行 + 1」でエラー吐く。 ーーー ーーーーー Private Sub ComboBox1_Change() Dim 行 As Integer 行 = 1 Do 行 = 行 + 1 Loop Until ComboBox1.Text = Worksheets("Sheet1").Cells(行, 2) 'ComboBox1に表示されてる文字列が、B列の何行目に記載されてるか取得 FormMain.Label1.Caption = Worksheets("Sheet1").Cells(行, 1) 'B列に記載されてる文字列と同じ行にある、A列の文字を取得してTextBox1に表示 FormMain.Label2.Caption = Worksheets("Sheet1").Cells(行, 4) 'B列に記載されてる文字列と同じ行にある、D列の文字を取得してTextBox1に表示 End Sub ーーーーー 検索絞り込み・Labelに表示・最終行の取得(これはエラーなく動かせてる)は、Sheet2でも使うのでclassモジュールに書きたい+formでの呼び出しがうまく行かない。 インターネットで調べながら組み合わせたが自力解決出来なかったのでよろしくお願いします(Vbaの知識は無し)。 元データーは現在Accessで動いてますが、B列(名前250件くらい)ComboBoxで全件読み込みから目当ての名前1つを探し出す宝探し状態。 元データー制作は10年くらい前に業者発注した物(当時は250件を想定してなかったのだろう)→現在は連絡取れない方なのです。 Vba(ComboBox絞り込み)での作り直しを希望してます。

  • 【VBA】手作業で選択した行を並び替え

    選択する行は毎回変わる為、選択自体は都度手作業で行います。 (セルを囲う手数を省略したいので、行単位で選択します) 行が選択された状態から、C列昇順、A列昇順の優先度で並び替えがしたいです。 宜しくお願いします。

  • エクセルのマクロ(値を検索して別シートにコピー)

    エクセルで下記のマクロをご教示いただけるでしょうか。 1.Sheet1のアクティブセルの右に5つ、下に1つのセルを起点として下方向に6セル分をコピー (例)Sheet1のアクティブセルがA2だとすると、F3~F8をコピー 2.Sheet1のアクティブセルの値(yy/mm/dd形式の日付)と同じ値のセルをSheet2のA列から検索し、該当セルの右に2つ分のセルに行列を入れ替えて値のみをペースト (例)Sheet1のアクティブセル(A2)の値がSheet2のA4セルにあるとすると、Sheet2のC4に行列を入れ替えて値のみペースト 3.Sheet1のアクティブセルの値がSheet2のA列に2つ以上あれば、「同じ日付が複数あります。」というメッセージを表示

  • visual studioでのキーボードイベント

    visual studioを使ってゲームを作成しています。言語はVBです。 Timer1に乱数を生成するコードを作っています。 エンターを押すとTimer1をTrueにして乱数の生成を開始し、左キーを押すとTimer1をFalseにして乱数の生成を止めるプログラムを作りたいです。お願いします。

  • 【vba】3波形の各最小値の差分算出方法について

    同時に取得した3波形について、各波形の最小値(y軸値)を記録した時間(x軸)を拾い、max時間とmin時間の差分を算出したいです。 vba等で対処可能でしょうか? よろしくお願いいたします。

  • VBA最終列の取得/不規則な処理

    VBAにて、最終列の取得ができません。 また、繰り返し処理を3列処理、step5、3列処理、step5…と繰り返し行う方法もご教授いただきたいです。 エクセルはo365を使用しております。 ①最終列の取得 実際は300列近くの表になります。 最終行は取得できたのですが、最終列がなぜかエラーも出ず、処理が行われません。 ②不規則な繰り返し処理 画像の水色部分のみ処理を行いたいです。 3列処理と記載したのですが、セル結合しているので、考え方が合っているのかも不明です。 塗りつぶされているセル一つ一つに処理を行いたいです。 また、行列共に可変します。 実行したいマクロは、選択したブックのSheets(1)の表の中の水色に入力されている文字列が「1」か「2」か判断するというものです。 「1」と入力されていれば → 別ブックのA1セルに1をカウント 「2」と入力されていれば → 別ブックのB1セルに1をカウント ※水色セルは参考で用意したものなので、実際は塗りつぶしされていません。 ※空白のセルもあります ①②の解消法のご教授をよろしくお願い致します。 =============================================== Option Explicit Sub kurikaeshi() Dim retu As Long, gyou As Long Dim File As Workbook Set File = Workbooks("test.xlsx") Dim ws1 As Worksheet, ws2 As Worksheet Set ws1 = File.Sheets(1) Set ws2 = ThisWorkbook.Sheets(1) Workbooks.Open FileName:=ThisWorkbook.Path & "/" & File For retu = 2 To ws1.Cells(4, ws1.Columns.Count).End(xlToLeft).Column 'ここが処理されません For gyou = 4 To ws1.Cells(ws1.Rows.Count, 2).End(xlUp).Rows If ws1.Cells(gyou, retu).Value = "1" Then ws2.Range("A1") = ws2.Range("A1") + 1 If ws1.Cells(gyou, retu).Value = "2" Then ws2.Range("B1") = ws2.Range("B1") + 1 End If Else Exit Sub End If Next gyou Next retu End Sub

    • ベストアンサー
    • noname#259368
    • Visual Basic
    • 回答数5
  • VB A言語

    VBA言語です。 以下に記述する問題について質問があります。 InpuuBoxで整数をMに入力してDo〜Loop文で総和Sを計算して得た結果を(M,N,S)の形で表記したいのですが、変数をLongで宣言する場合の表示を教えてほしいです。 問題 S=2^1+2^3+2^5・・・+2^Nの総和がMを超える最小のNとS よろしくお願いします(>人<;)

  • VBA言語プログラミング

    VBA言語です。 以下に記述する問題について質問があります。 InpuuBoxで整数をMに入力してDo〜Loop文で総和Sを計算して得た結果を(M,N,S)の形で表記したいのですが、変数をLongで宣言する場合の表示を教えてほしいです。 問題 S=1+2+2^2+・・+2^Nの総和がMを超える最小のNとS よろしくお願いします(>人<;)