タグ付けされた質問 「vba」

アプリケーション用のVisual Basic; すべてのMicrosoft Officeアプリケーションで使用されるVisual Basicのサブセット。問題の特定のアプリケーションのタグと一緒にこのタグを使用することを検討してください。VBAに関する良い質問には、通常、いくつかのコードが含まれており、特定の問題の解決策を求めています。ソリューション全体を求める質問(コードを教えてください/ VBAでこれを行う方法とこれを行う方法)はトピックから外れており、あまりに広範に締め切られます。

0
Excel VBA-ユーザーが入力している間のコンボボックス検索
これが可能かどうかはわかりませんが、顧客をリストするコンボボックスを持つユーザーフォームがあります。 リスト内の値の現在の形式は、town-customerです。ユーザーがComboBoxに入力すると、リスト内の値を検索できます。 ただし、これは最初の文字からのみ機能します。つまり、ユーザーは最初に町に入力し、その後にリストに表示される「-」を入力する必要があります。 ComboBoxに、ユーザーからの入力などの任意の値を検索させることは可能ですか?つまり、最初に町を入力せずに、ユーザーは顧客名のみを入力できます。

2
VBAの組み込みとコピーと貼り付け
誰かが私を助けてくれるのではないかと思います。 以下のコードを使用して、値が列「B」に入力されたときに、事前定義されたテキストでいくつかの列に自動入力します。 Option Explicit Public preValue As Variant Private Sub Worksheet_Change(ByVal Target As Range) Dim cell As Range, res As Variant Dim FirstBlankCell As Range Dim lr As Long Dim msg Dim rCell As Range Dim Rng As Range, Dn As Range Dim Rng1 As Range Dim Rng2 As Range …

1
多くのExcelファイルのデータを単一のExcelファイルにマージする[終了]
VBAを使用して、100以上のExcelファイルのデータを単一のファイルにマージする必要があります。 私のリポジトリ(D:\ rep)には、(file1、file2 ...など)という名前の100以上のファイルが含まれています Excelファイルのサンプル これらすべてのファイルのデータを1つのファイルにマージし、次のようにデータを結合する必要があります。 行は新しいファイルでも同じです。列1は(ファイル1)列で、その値は次の図に示すように行の値の合計を参照します マージされたファイルのサンプル

1
Excel:ワークシート更新イベントがキャッチされません
同じExcelで2つのワークブックを開きます。最初のテストではtest1という名前、5つの名前のリストには右側の数字があり、2番目では同じ5つの名前と次の式があります。 =([test1.xlsx]Sheet1!$C$5) 右の方へ。したがって、最初のワークシートで数値を更新すると、2番目のワークシートで自動的に更新されます。次に、2番目のWorksheet_ChangeイベントにVBAコードを追加しました。2番目のワークシートで数値を変更するとイベントが発生しますが、最初のワークシートから更新が行われると機能しません!! これを回避する方法はありますか?

0
選択すると行をコピー、貼り付け、追加し、削除を選択すると削除します
私はvbaから始めました。部品注文シートで忙しいです。 上の写真で、[ 追加 ]ボタンをクリックした場合、exをコピーする必要があります。I26とL26をボトムシートに、D2とE2に。次に、次の行に移動する必要があります。 質問1:人が間違いを犯した場合、「削除」ボタンをコーディングしてその特定の行を削除できますか? 質問2:コントロールボタンを選択して塗りつぶしの色を変更することはできますか?

1
VBAで下に行を挿入するにはどうすればよいですか
ユーザー入力の下に行を挿入しようとしていますが、私のコードは上に追加し続けています。 Dim varUserInput As Variant varUserInput = InputBox("Enter Row Number where you want to add a row:", _ "What Row?") If varUserInput = "" Then Exit Sub RowNum = varUserInput Rows(RowNum & ":" & RowNum).Insert Shift:=xlDown

1
Excel:個々のセルの内容に基づいた範囲の自動作成
私はまだマクロに触れていないので、ここで質問しています。斜めのセルのセットにグラデーションを設定したいスプレッドシートがありますが、60以上の列がある場合は非常に時間がかかります。セルに斜めに番号が付けられているテンプレートがあります。テンプレートの小さな例を次に示します。 これは現在、右と下の両方に60まで続きます。簡単に数値を入力できますが、条件付きで斜めにフォーマットするのには時間がかかります。領域を選択して、この領域の同じ番号を含むすべてのセルを選択し、番号が何であれ定義された範囲を作成し、その範囲が既に存在する場合はそのセルをその既存のセルに追加する方法があるかどうかを知りたい範囲。 たとえば、範囲「main」内に「1」を含むすべてのセルを取得し、範囲「_1」を作成してセルを追加します。その後、60の範囲すべてが完了するまで繰り返します。 次に、「_ 1」から「_60」までの範囲を取り、3つのカラーグラデーションの条件付き書式を簡単に追加して、数値を削除して数式に置き換えた後、各範囲の大きい数値を強調表示する方法も必要です。私はこの部分を手動で行う必要があるかもしれませんが、各対角線に既に範囲が定義されている場合ははるかに簡単になるので、「5」を含むエリア検索セルを選択して範囲「_5」を定義する必要はありません、その後、1〜60の各数値に対して条件付きでフォーマットします(現在は60のみですが、最終的には大きくなる可能性があります)。 グラデーションを使用した1行の例を次に示します。各対角線に勾配があります。最終的に各対角線を簡単に区別できるように3つの異なる色になるため、探しているものが一目でわかります。グラデーションの例: 範囲を作成した後、グラデーションを手動で行うことができます。 私はこれがほとんど不可能であることを知っていますが、私はこれらのかなりの数を持っているので、何百ものセルを手動でフォーマットするだけで時間を費やすのを楽しみにしたいと思います。 必要なものの簡単な概要は次のとおりです。 for all cells inside range "Main" [ read cell if range "-[cell]" exists [ add cell to range ] else [ define range named "-[cell]" add cell to range ] ] すべてのセルが範囲内に収まったら、グラデーションを作成してほしい。「-1〜-60の各範囲に対して、3色の条件付きフォーマットを行う」などのようなものです。 それよりもはるかに多くのことがあることを知っていますが、それは私が必要とするすべてです。 これが不可能かどうか教えてください。たぶんそうですが、尋ねることに害はありません。

1
入力ボックスの日付に基づくフィルターが機能しない
開始日と終了日を入力し、選択した日付の間でExcelテーブルのデータエントリをフィルター処理するVBAが必要です。ただし、このコードはフィルタリングされたエントリをゼロで返します。手動でExcelのフィルターにアクセスすると、正しく構成されていることがわかります(日付はフィルター条件ボックスに入れられます)。[OK]ボタンをクリックすると、問題なくフィルタリングされます。どのような間違いを犯したのでしょうか? Psは、入力ボックスの値が正しい形式の日付であることを前提としています Option Explicit Sub ExpCsmLg() ' ExpCsmLg Makro ' this makro filters all data entries between two selected dates Dim sdt As Date Dim edt As Date 'sdt = InputBox("Choose Start date.") 'edt = InputBox("Choose End date.") ActiveSheet.Range("$A$5:$Q$7992").AutoFilter Field:=1, Criteria1:=">=" & sdt, Operator:=xlAnd, Criteria2:="<=" & edt End Sub

1
特定のセルから開始して別のシートにデータを転送し、(後続の呼び出しで)下方向に動作するマクロを作成する方法は?
SHEET1にDATA INPUTセル(セルB3)があります。マクロボタンを押すと、SHEET1のセルB3のデータがSHEET2のセルC5にコピーされ、SHEET1のセルB3に入力されたデータが削除されるマクロコードを作成します。そして、別のデータを入力してボタンをもう一度押すと、データはSHEET2の次の行(この場合はセルC6)にコピーされます。次に、セルC7、C8など。 このためのコードを作成しようとしましたが、セルC5で開始することはできません。常にセルC2から始まり、下向きになります。「Startrow」などのコードを調べてみましたが、機能しません。 以下のコードをご覧ください: Sub Button1_Click() Response = MsgBox("Are you sure?", vbYesNo) If Response = vbNo Then Exit Sub Dim nextrow As Long nextrow = Worksheets("Sheet2").Cells(Rows.Count, "C").End(xlUp).Row + 1 Worksheets("Sheet1").Range("B3").Copy Worksheets("Sheet2").Range("C" & nextrow) Worksheets("Sheet1").Range("B3").ClearContents End Sub

2
Excel 2013のうるう年に基づいて単一の列データを複数の列に分割する
気象データで構成されるMS Excelのファイルは約100個あります。 私は毎年データを必要としていますが、ファイルには約140年のデータを持つ単一の列があり、手動でのコピーと貼り付けは非常に時間がかかります。したがって、1年(365セル)のデータが連続した行にコピーされるようにドラッグできる単純なコマンドを使用して、データを分割する方法はありますか。 また、3年ごとのデータは、残りの365セルではなく366セルでなければならないというyear年の問題があります。

1
Excelの数量に基づいて単一の行を複数の行に分割するにはどうすればよいですか?
部屋内の医療機器(JSNにより識別)をリストしたスプレッドシートがあります。単一の機器(JSN)が部屋内に複数の数量を持つ場合があります。1を超える数量を持つすべての行を、同じデータを持つ複数の行に分割し、同時に数量を1 EAに変更したいと思います。既存のスプレッドシートがどのように見えるかの例を次に示します(他の列を除く): Nomenclature JSN Wayfinding Rm # QTY Installed Shelving, Solid M2090 40-179 3 5/5/15 Waste Can, Swing F2010 11-087 2 9/9/15 Stand, Mayo, Screw M8810 11-078 1 8/1/15 これが私が必要とするものです: Nomenclature JSN Wayfinding Rm # QTY Installed Shelving, Solid M2090 40-179 1 5/5/15 Shelving, Solid M2090 40-179 1 5/5/15 Shelving, …

1
Powerpoint 2010/2013ドキュメントの入力フィールドでダイアログボックスを起動する方法
ドキュメントの開始時にダイアログボックスを起動するPPTプレゼンテーションを設定して、いくつかのフィールドに情報(クライアントの名前、プロジェクトの名前など)を直接入力できるようにします。これらの情報は、特定のテキストボックス内のプレゼンテーションの一部のスライドに自動的に表示されます。 マクロレコーダーツールを使用できれば、これは簡単です。Excel、Word、またはPowerPoint 2007と同様ですが、この機能は2010バージョン以降に削除されました。開始点から開始して、ダイアログボックス(または直接、必要なスライドのテキストボックス)に入力するようにユーザーに求めるマクロを簡単に記録できましたが、これはもう不可能です。 したがって、VBAの使用を続行する必要がありますが、このコードについては何も知りません。そのため、ドキュメントにこのオプションを実装できるコードを見つけたいのです。何か案は? 私はPPT 2010に取り組んでいます。

3
Buttonによって適用される正確なプロパティを決定する
カンマ形式のようなExcelのボタンをクリックすると、選択に適用される正確なスタイルを決定する方法はありますか? ツリーを手動で参照しないようにしています。 または、フォントの色を赤に設定した場合、これは明らかですが、Excelのプロパティの前後にスナップショットを作成する方法はありますか?

3
複数の行の内容を1つのセルに追加し、Excel 2010で3番目の行でグループ化する方法
異なる行から複数​​の名前を1つの行の1つのセルに取得しようとしていますが、別の列の値でグループ化します。また、名前のリストには、コンマ区切りのリストではなく、名前の間に改行を入れる必要があります。これが可能になるかどうかはわかりません。= CONCATENATE(TRANSPOSE(B2:B19))のようにデータを1つのセルに入れ、char(10)で改行を追加するなど、必要なものをいくつか持っていますが、できませんでした私が欲しいものを得るためにそれをまとめること。 現在、データは次のようになっています。 私が欲しいもの: VBAソリューションでさえも大丈夫-それは私の得意ではありませんが。;)Wordの差し込み印刷で使用するには、このようなデータが必要です。 また、スプレッドシートにはさらにいくつかのデータ列があることに注意してください。簡単にするために省略しました。

1
Excel 2010:データソース検証ワークシートの変更に基づいたドロップダウンリストの動的更新
複数のデータ検証リストのデータソースを設定するためのワークシートが1つあります。つまり、このワークシートを使用して、他の複数のワークシートにドロップダウンリストを提供しています。 データソースワークシートの1つまたは複数の変更のいずれかで、すべてのワークシートを動的に更新する必要があります。これは、ブック全体のイベントマクロを使用する必要があることを理解できます。 私の質問は、これをどのようにしてブック全体で「オフセット」式を維持するのですか? どうも 私の質問をサポートするために、私はそれを機能させようとしているコードを入れました: 以下の情報を提供しました: 私はドロップダウンリストの擬似動的更新のためにそのような式を使用しています、例えば: = OFFSET(MyDataSourceSheet!$ O $ 2; 0; 0; COUNTA(MyDataSourceSheet!O:O)-1) 私はピアソンの本のイベントの章を調べましたが、これにはあまりにも初心者です。 このマクロを理解し、データソースと同じワークシートのドロップダウンリストを使用してテストとして正常に実装しました。私のポイントは、これを完全なワークブックに展開する方法がわからないということです。 データソースワークシートに関連するマクロ: Option Explicit Private Sub Worksheet_Change(ByVal Target As Range) ' Macro to update all worksheets with drop down list referenced upon ' this data source worksheet, base on ref names Dim cell As …

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.