Visual Basic
- Excel 集計フォーム
ユーザーフォームを使用して、部署1と部署2にチェックが入っていて数量欄に数字が入っている場合、赤枠のところに入力されていく仕組みを作りたいのですが、コードの書き方などお教えいただけないでしょうか。 色々調べているのですが検索の仕方が悪いのか解決できず…。 お手数をおかけ致しますが、よろしくお願い致します。
- ベストアンサー
- Visual Basic
- Post-P
- 回答数3
- 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
- ベストアンサー
- Visual Basic
- aoaoaoki
- 回答数5
- 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初心者のため、複数のサイトを参考にしながらコードを作成しています。 説明が不足している部分がありましたら申し訳ございません。 どなたか知恵をお貸し頂けますと助かります。
- ベストアンサー
- Visual Basic
- okwaveptsquare
- 回答数5
- VisualStudio 2013 日本語化
Windows11にてVisualStudio 2013を利用したいと考えております。 環境構築を行っているのですが、以下の点が改善できない状況です。 ■環境構築 (1)Windows11にVisualStudio2013 community Edition(Update4) をインストール→正常に完了 (2)日本語化パッケージのインストール ※2013 Language Pack - 日本語 →インストール中にエラー発生 ■エラー内容 パッケージソースが見つかりません。 Webで改善方法を検索したところ、一度アンインストールしてから実施すれば良いとの記載もあったため、以下コマンドを実施致しました。 \vs_langpack.exe /uninstall 上記コマンド実行後も症状は改善しませんでした。 同様のインストーラを利用してWindows8.1では正常に動作する事を確認致しました。 お手数おかけ致しますがWindows11において正常に日本語化する方法が分る方がいらっしゃいましたらご教授頂けますと幸いです。 以上です。
- 締切済み
- Visual Basic
- 19820202
- 回答数1
- 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()作って書こうかな・・・と思ってます
- ベストアンサー
- Visual Basic
- 9ryutarou
- 回答数5
- なぜかフォームは上書きされません。
こんにちは。 下記のようなフォームにボタンを追加し、セルにデータを書き込み、最後に上書きするマクロを作ってみました。 セルのデータは上書きされますが、なぜかフォームは上書きされません。フォームの表示で追加したボタンも表示されます。 どなたかご教示願います。 -------------------------------------------- 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
- ベストアンサー
- Visual Basic
- okidsaya555
- 回答数4
- 【VBA】エクセルで文字置換
いまは1つ1つ手作業でしており時間が大変掛かっています。 VBAでやろうとしたものの挫折しております。 文字の置換を連続して、VBAで自動で出来ないかと思っております。 Sheet1に「商品名」と「商品説明」 Sheet2に「検索する文字」と「置換後の文字」 (やりたいこと) Sheet2の置換方法に従ってSheet1の文字を置換する Sheet2のすべての置換方法をSheet1のすべての商品(商品名、商品説明共に)に対して処理する 置換処理した後は、処理件数をSheet2のC列に入力する 可能であれば、教えて頂きたいと思います。 宜しくお願いします。
- ベストアンサー
- Visual Basic
- value100100
- 回答数2
- エクセルVBAで連続して文字置換をしたい
シート2に「検索する文字」と「置換後の文字」を入力しておく マクロで自動的にシート1の文字列を文字置換していく 置換作業は、シート1の商品全部を対象として、 シート2に入力している文字列を1つずつ置換作業をして 処理した後は、処理件数を残していく。 シート2に入力している文字列の数だけ全部、処理する。 現状は、商品数が約2万個で検索する文字列は100個ほどあります。 (今後はさらに増える予定です。)
- 締切済み
- Visual Basic
- value100100
- 回答数1
- 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絞り込み)での作り直しを希望してます。
- ベストアンサー
- Visual Basic
- 9ryutarou
- 回答数12
- 【VBA】手作業で選択した行を並び替え
選択する行は毎回変わる為、選択自体は都度手作業で行います。 (セルを囲う手数を省略したいので、行単位で選択します) 行が選択された状態から、C列昇順、A列昇順の優先度で並び替えがしたいです。 宜しくお願いします。
- ベストアンサー
- Visual Basic
- 0611birth
- 回答数5
- エクセルのマクロ(値を検索して別シートにコピー)
エクセルで下記のマクロをご教示いただけるでしょうか。 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 Basic
- KIKAIDER01
- 回答数5
- visual studioでのキーボードイベント
visual studioを使ってゲームを作成しています。言語はVBです。 Timer1に乱数を生成するコードを作っています。 エンターを押すとTimer1をTrueにして乱数の生成を開始し、左キーを押すとTimer1をFalseにして乱数の生成を止めるプログラムを作りたいです。お願いします。
- ベストアンサー
- Visual Basic
- ko0405
- 回答数1
- 【vba】3波形の各最小値の差分算出方法について
同時に取得した3波形について、各波形の最小値(y軸値)を記録した時間(x軸)を拾い、max時間とmin時間の差分を算出したいです。 vba等で対処可能でしょうか? よろしくお願いいたします。
- 締切済み
- Visual Basic
- 120425046a
- 回答数3
- 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
- ベストアンサー
- Visual Basic
- noname#259368
- 回答数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 よろしくお願いします(>人<;)
- ベストアンサー
- Visual Basic
- tgadgwp
- 回答数1
- VBA言語プログラミング
VBA言語です。 以下に記述する問題について質問があります。 InpuuBoxで整数をMに入力してDo〜Loop文で総和Sを計算して得た結果を(M,N,S)の形で表記したいのですが、変数をLongで宣言する場合の表示を教えてほしいです。 問題 S=1+2+2^2+・・+2^Nの総和がMを超える最小のNとS よろしくお願いします(>人<;)
- ベストアンサー
- Visual Basic
- tgadgwp
- 回答数1
- VBA言語プログラミング
添付画像の問題での質問です。ong型の変数Nを宣言し、Nの値をinputbox関数で入力すると、(N,sum())および(N,sum2())を表示するSubプロシージャのプログラムが分かりません。 言語はエクセルのビジュアルベーシックです。
- ベストアンサー
- Visual Basic
- tgadgwp
- 回答数2
- 別のSubで生成した乱数の呼び出し
visual studioのVBAでアプリを作っています。 Private Sub tmr_1(略)で乱数を3つ生成しました。タイマーがtrueの間、乱数を生成し続けるコードを打っています。この乱数を別のSubでも使いたいです。
- ベストアンサー
- Visual Basic
- ko0405
- 回答数5
- Excelでプルダウンリストを選びなおしたら下の値
Yes,Noの質問が7つあり 例えばデフォルトがNoで途中までYesを選んでいて前の質問がNoに変わったら下のすべてのセルが値がすべて自動でNoの値に変わる方法はありますでしょうか。
- 締切済み
- Visual Basic
- 12234eiga
- 回答数1
- コンボボックスの値に応じてブック内クロを実行したい
マクロ初心者です。 シート1にコンボボックスを用意しています。 コンボボックスの入力範囲で指定している値が複数の年月 (例2022/11,2022/12…) リンクするセルがA1としました。 A1に表示されている値は、1です。 標準モジュールに、Macro1、Macro2、Macro3…と作りました。 セルA1値が2022/11の場合はMacro1を実行、 2022/12の場合はMacro2を実行する場合のマクロを教えてください。 よろしくお願いいたします。
- ベストアンサー
- Visual Basic
- tjsm0028
- 回答数2