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

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

0
MS Access VBAデザイナウィンドウで、すべてのメニュー、リボン、およびツールバーが表示されない
不足しているアイテムはそれを使用することを不可能にします。コードを書くことはできますが、実行およびテストすることはできません。私は多くの解決策を試しましたが、そのほとんどはVBEを再起動することですが、それはうまくいきません。実際、これまでに機能したものはありません。私は文法的にWindowsの一部を取り戻そうとしましたが、これもうまくいきませんでした。 私は約1ヶ月間このプロジェクトの開発にVBEを使っていました。その間、VBEの機能はすべて整っていて、正しく機能しているようでした。他のOfficeモジュールに問題があり、それを完全に修復する必要がありました。再インストールが戻ってきたとき、VBEは通常の部品(メニュー、ツールバー、リボン)がありませんでした。その目的がVBEの外観と機能をカスタマイズすることであるいくつかのコードを持っている記事を見つけました。このコードを実行しましたが、効果がないようです。 私はまた、利用可能な右クリックのものを使ってウィンドウを構築しようとしました、しかし、それはされることができず、そしてそれが閉じられるとき、それはデフォルト設定に戻ります。 Windows 10、Access 2016を使用しています。

0
Excelで積み上げ棒グラフの複数の系列の色を変更する
Excelのガントチャートに似たものを作成しようとしています。私が取り組んでいる各データポイントには開始日と終了日があります。データにはカテゴリも含まれています。同じカテゴリの前に複数の時間が表示されるように、セグメント化されたガントチャートを作成しようとしています。チャートが正しく機能するようになっていますが、時々私が見ているデータは1つのカテゴリに対して15または20の時間間隔を持っています。各カテゴリの各シリーズを交互のクリアとフィルに変更するには時間と労力がかかります。私が自動的に、または少なくともそれを繰り返す必要なしに、この色パターンに合うようにすべてのシリーズを変更する方法があるかどうか疑問に思いました。 ありがとう

2
Excelグラフ:ユーザー定義の可変線の太さのマクロ
1つのグラフに複数のデータ系列があり、選択したグラフに基づいてグラフ内の約55行に太さを変えることができます。私は一度にすべての線の太さを調整する次のマクロを見ました。 Sub SetWeights() Dim srs As Series For Each srs In ActiveSheet.ChartObjects("Chart 1").Chart.SeriesCollection srs.Format.Line.Weight = 0.75 Next End Sub Excelワークシートのいずれかの列で定義されているように各線の太さが異なるようにする方法(マクロ)はありますか。 線の色やマーカーの種類を一度に変更する同様の方法はありますか(各行に異なるマーカーは不要です)。

2
Excel、最も近い水曜日(または日曜日)までに+ 8週間計算する
計算する必要があるビジネスプロセスがあります (TODAY + 8 weeks) to the nearest Sunday or Wednesday. 例えば - 今日は07/12です。 - 8週間は01/02/18です - これは木曜日です。過去の最も近い水曜日か日曜日に数えなさい[1]。将来の最も近い水曜日か日曜日に数える[3] - 計算された日付間のホップ数が最も少ない日を選択します。そこで水曜日31/01/18を選択 - 金曜日でタイがある場合(-2から水曜日、+ 2から日曜日)、日曜日を選択します。 私はExcelに満足しています。 =TODAY()+(8*7) しかし次のステップ is this a Wednesday or Sunday, if not count forward and back until it is both then compare the two values and select the …

0
トラブルシューティング - VBAを使用してExcel(2013)で異なるシートから2つのセルをミラー化する方法
私は広範な問題追跡ファイルのためのVBA設定に取り組んでいます。私はすべての問題を含む1枚のシートを持っています、そして管理するのは難しいです。ある日の優先順位の高い10個の項目をユーザーに提示し、それらの項目を更新してさらに問題を取り出せるように設計された別のシートがあります。データがミラー化されている方法のため、ユーザーはどちらかのシート上のデータを操作し、それをもう一方のシートにミラ​​ーリングできるようにする必要があります。 別の質問からいくつかの提案されたコードを見つけ、1つのセルしかミラーリングしていない限りそれを機能させることができましたが、他のセルに追加するコードの複製を開始するとすぐに(約200のセルが必要です) (ミラーリングされている)、すべてのセルは更新を停止します(以前は正常に機能していたものも含む)。 の その他の問題 追加のセルミラーリングコード行を追加する前でも、シートが最も優先度の高い10項目をレポートする方法に関連していました。私は最初のシート(わかりにくいもの)を取り、特定の方法でデータをソートするマクロを作成し、そのマクロをもう一方のページのボタンに添付しました。ボタンを押すと、最初のシートのデータが正しくソートされますが、ミラーリングされたセルは更新されません。だから私は知る必要があります 1) 複数のセルをミラーリングできるようにコードを調整する方法 2) ボタンを使って最初のシートをソートすると、2番目のシートのデータが更新されます。 ミラー化セルを1セットしか持っていないときに機能していたコードは、シート1コードにある以下のコードです。 Private Sub Worksheet_Change_B2(ByVal Target As Range) Dim B2 As Range, B2_1 As Range Set B2 = Range("B2") Set B2_1 = Sheets("Priority Table").Range("B2") If Intersect(Target, B2) Is Nothing Then Exit Sub Application.EnableEvents = False B2_1.Value = B2.Value Application.EnableEvents = True …


2
Excel 2013 - データ検証 - 2番目の条件に一致する場合は値を含むドロップダウンリストを作成します
私はできるだけ自分の問題を単純化するつもりです。私はExcelで2枚のシートを手に入れた。最初のシートで私は場所のリストを作成しています。次の列(C)には自動的に作成されるIDがあるはずです(最初の場所はID-001、 2番目はID 002などを取得します。 2番目のシートでは、資産のリストを作成しています。したがって、ここでもまた、列Aで領域を選択し、列Bに資産の名前を入力します。 今度は、C欄にドロップダウン・リストを表示し、そこには、面積が同じである最初の表のIDだけを表示します。 OFFSET関数を使用しようとしましたが、欠けているのは、IDのリストを同じ領域を持つものに制限するためのある種の「select if」(countifやsumifなど)です。 各エリアには多くの場所とアセットがありますが、すべての場所とすべてのアセットは1つの場所にしかマップできません。 あなたの答えを楽しみにしています。優れたソリューションかvbaソリューションのどちらかが素晴らしいでしょう。


1
範囲外の添え字 - 詳細を確認する方法
問題の原因となっているExcelのvbaコードがいくつかあります(コード自体はこの質問の目的には関係ありません)。 コードを実行すると、次のエラーメッセージが表示されます。 添字が範囲外 それでおしまい。他に何もない。 Visual Studioで何かが壊れると、コールスタックが発生します。デバッガは問題のあるコード行などを移動し、デバッグは非常に簡単になります。 私の質問は、一度にコード行をステップ実行することを試みること以外にこの問題についてもっと知るために何ができるかです。 エラーの原因となっている行でVBaを停止させる方法はありますか。または、例外パネルのように、ウィンドウ/パネルの1つにこれを表示します。

1
セル配列内の同じものを削除する方法
私は100個以上のセルからなるコラムを持っていて、それらの中にはすべて弾丸が入っています。 すべての箇条書きを削除し、そしてテキストをセルに残すだけのマクロまたは何らかの機能を実行することができますか? 任意の助けは大歓迎です!

0
Excelテキスト間のスペースで値を切り捨てます
Excel 2010 VBAで奇妙な状況があります。 Teradataデータベースからデータを取得し、その値をExcelセルに割り当てるためにADODBレコードセットを使用しています。テキスト全体の間にスペースがある値の1つが切り捨てられています。なぜこれが起こっているのかわからない。 カーソルをレコードセット値に合わせると、値全体が表示されませんが、カーソルを合わせると ?rs.fields(0) すぐ近くのウィンドウには、テキスト全体が表示されます。以下は私が返すことを期待しているテキストであり、それはExcelセルに割り当てられることになっています: POSO200 PRICING OPT ERR C7 ただし、で切り捨てられます POSO200 PRICING OPT ERR

0
貼り付け時のマクロエラー
列をフィルタリングしてから、値をコピーして貼り付けます。 しかし、範囲クラスのPasteSpecialメソッドが失敗したというエラーが表示されます。 Sub DD() ' ' DD Macro ' ' Rows("1:1").Select Selection.AutoFilter ActiveSheet.Range("$A$1:$H$132").AutoFilter Field:=8, Criteria1:="1" Columns("A:A").Select Selection.Copy ActiveSheet.Range("$A$1:$H$132").AutoFilter Field:=8 Columns("I:I").Select ActiveSheet.Paste Range("I6").Select End Sub Sub dds() ' ' dds Macro ' ' Rows("1:1").Select Selection.AutoFilter ActiveSheet.Range("$A$1:$I$132").AutoFilter Field:=8, Criteria1:="1" Columns("A:A").Select Selection.Copy ActiveSheet.Range("$A$1:$I$132").AutoFilter Field:=8 Columns("I:I").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Range("J9").Select …

1
VBAを使用してExcelで円グラフデータラベルを最適に配置する
データベースのデータから円グラフを作成するワークシートがあります。グラフは表示されているデータに基づいて変化するため、スライスのサイズは変わることがよくあります。 スライスが保証できるほど小さい場合は、スライスの外側のデータラベルを引出線で表示します。 私はそこにほとんどの方法を持っています、しかし問題はラベルがしばしばめちゃくちゃになって、そして互いに重なり合うか、彼らのスライスからあまりにも遠く離れて現れることになってしまうということです。これにより、チャートを更新するときに手動でラベルの位置を変更する必要があります。 これは、データを変更した後のチャートの例です。 「財産」と「償還」が重なっている一方で、「マクロ」と「金」があまりにも遠く離れすぎているため、余分なリーダーラインが表示されています。 これらの問題なしにラベルを再配置するのが得意なVBAスクリプトはありますか?スライスのサイズが大きすぎると、スライス内にラベルを配置しようとするため、組み込みのExcelの位置設定では不十分です。これにより、配色のためにラベルが判読できなくなります。

1
スプレッドシートの比較と更新
ここでExcelスプレッドシートについての助けが必要です。 2つのワークシートがあります。1つは古いレコードを保持し、もう1つは現在のレコードを保持しています。私がやりたいことは、コマンドボタンに関連付けられたvbaコードを開発することです。以下のサンプルを見つけてください。ボタンがクリックされると、古いレコードの値は新しいレコードの値に基づいて自動的に更新されます。わかりやすくするために、これはワークシートのスナップショットです。 Sheet1には古いレコードが含まれています。これはライブであり、100人以上のユーザーに表示されます。 sheet2にはさまざまなソースから更新されている新しいレコードが含まれており、フィールド/列のいずれもフィールドユーザーが変更できます。 両方のシートのフィールド1は、主制御フィールドを保持します。だから私がやりたいのは、sheet2のfield1の各値を取得してから、それをsheet1のfield1で検索することです。 。値がsheet1にまったくない場合は、sheet2のすべての値とすべての関連レコードをsheet1にコピーします。常に、sheet2の新しいアップデートに基づいてsheet1をアップデートし続けたいと思います。 私は自分自身を十分に明確にしたことを願っています。私は75フィールド/列とテーブル内の70,000以上のレコードを持っているので、サンプルテーブルは単なる単純化されたバージョンです。 これを達成するためのあなたの予想される助けとサポートをありがとう。 **SHEET1** Field1 Field2 Field3 Field4 Radms Street 781772 2 76 Mapre Street 781772 31 76 Catapilar Av 781727 1 90 Aveb Park 781727 56 91 **SHEET2** Field1 Field2 Field3 Field4 Aveb Park 781727 56 91 Radms Street 781770 2 76 Solution Way …

1
ゼロ値とNULL値を持つ行を除く重複行を削除
Sub Workbook_Open() Dim value As Integer value = Range("B3:N1955").value If IsEmpty(value) Or value > 0 Then Range("B3:N1955").RemoveDuplicates Columns:=13, Header:=xlsm Else End If End Sub 0またはNULL値を持つ行以外の重複行の値を削除したい。上記のコードを実行するたびに、 'Type Mismatch'エラーが発生します。前もって感謝します。 私のスクリーンショット

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