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

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

2
VBAのABS機能に範囲を渡す
私はこのように見える機能を実行したいと思います Selection.FormulaArray = "=GEOMEAN(ABS((C646:E646)))" 私の範囲は変化し続けるので、私はこのように見える変数として範囲を渡したいです。 Range1 = Range("C646", Range("C646").Offset(0, 2)).Address(False, False) Selection.FormulaArray = "=GEOMEAN(ABS(Range1))" #NAMEとしてエラーが発生しますか。 しかし、私がこれを渡すなら x = Range("C646").Address(False, False) Y = Range("C646").Offset(0, 2).Address(False, False) Selection.FormulaArray = "=GEOMEAN(ABS((x:y)))" #VALUEとしてエラーになります。 誰かが手伝ってくれる?

1
Excel - コメント内の日付に基づいて、またはテキストと組み合わせてセルの色を変更する
私はExcel 2010を使用しており、そのセル内の日付に基づいてセルの色を変更するルールを設定しようとしています。 たとえば、セルには Site meeting - 11.05.14 2週間後、1週間後、2日後に期限切れになると自動的に色が変わるようにしたいと思います。 理想的には日付だけのセルを別にしたくないので、コメントに日付を含めることもできます。私は私が多くを求めていることを認識していますが、うまく行けば誰かが解決策を持っているかもしれません? 私はこれのための解決策を持っていますが、それは大まかであり、本当に私がしていることではありません。条件付き書式設定と= NOW関数を使用すると、2つのセルを使用しても結果を得ることができます。特定のシンボルの前にセル内のすべてを無視するようにExcelに指示する方法があることを願っています。この場合には "-"。 グーグルは私をVBAに導いたが、残念ながら私はその使い方がわからない。それで、うまくいけばここの誰かが助けることができる?または少なくとも私に正しい方向への推進力を与えてください。

3
2つの別々のテーブルに同じ行数を強制する
Excelに2つの別々のテーブルがあり、両方とも同じ最初の列と同じ量の行を持ちたいです。 最初のテーブルの最初の列を参照して、2番目のテーブルの最初の列に入力しました。2つのテーブルに常に同じ行数と同じ行数を持たせる方法を知っておく必要があります。 テーブル1から行を削除すると、テーブル2からも同じ行が削除されるはずです。 表1に行を追加しても表2に行が追加されるはずです。 テーブル内の他の列には同じデータは含まれません。 私はテーブルについてはほとんど経験がありませんが、VBAについての適切な知識があるので、私はすべての提案を受け入れます。

1
特定のセルの値に従ってExcelシートの行を表示または非表示にする(Excel 2007およびWindows 7)
さまざまな標準オプションから装飾の選択を指定するスプレッドシートを作成しました。 5つの個別の範囲があるため、これが最初の選択であり、各範囲内に追加の選択があります。 そのため、シートの開始時に「フレーム」と5つの「ラジオボタン」を使用し、この選択をcellにリンクしましたP1。 したがって、この選択が行われたら、さまざまな行を非表示にして、最初の選択に関連する選択(範囲1に関連する行10〜19、範囲2に関連する行20〜29など)のみを表示します。 以下は私の「コード」ですが、ラジオボタンの選択を変更しても何もしません(セルの値がP1期待どおりに変化するのを見ることができます)。 Sub HideShow() ' ' HideShow Macro ' Show only the selection pane assocated to the Design line selection If Range("P1").Value = 1 Then ‘Decoration Range A Rows("10:19").Select Selection.EntireRow.Hidden = False Rows("20:59").Select Selection.EntireRow.Hidden = True ElseIf Range("P1").Value = 2 Then 'Decoration Range B Rows("10:19").Select Selection.EntireRow.Hidden = …

4
ExcelでVBAが必要かどうか、またはピボットチャート/テーブルで十分かどうかを判断する
この質問をより正確に説明するタイトルがあればいいのですが、ExcelスプレッドシートやVBAについてはあまり知識がありません(私は主にJava開発者であり、Microsoftの世界ではあまり遊んでいません)。 Excelスプレッドシートを使用して何かを達成しようとしています。PivotTable、Pivo​​tChart、またはその他の組み込み機能を使用してそこに到達できるかどうか、またはカスタムVBAコードを記述する(または別のプラットフォームを使用する)必要があるかどうかを判断する必要があります。 スプレッドシートの目的は、組織(Toastmastersクラブ)のスケジュールの作成を支援することです。この組織にはメンバー名簿があり、毎週会合を持ち、さまざまなメンバーが特定の会議でさまざまな役割に割り当てられます。 私のスプレッドシートは次のようになります。 最初のタブ 1列...メンバーシップ名簿を表す名前のリスト。 2番目のタブ 各行は過去の会議日を表します。各役割には列があり、セルにはその日付でその役割を担当した人が入力されます。データ検証を使用して、各セル内で最初のタブの名簿をプルダウンとして使用できるようにします。 3番目のタブ(複数のタブがありますか?) これが全体のポイントです。可能な会議の役割ごとに、どのメンバーがその役割に割り当てられる最も「期限切れ」であるかを確認したいと思います。基本的に、私はすべてのクラブ会員のリストを、その役割を最後に務めてからの期間でソートしたいです。その役割を一度も務めたことがない人は、リストの一番上にソートされます。 その3番目のタブデータは、ピボットテーブルなどで実現できるものですか?それとも、これらのツールの目的と制限を誤解していますか?

1
単語VBAマクロの並べ替え
私は構造化されたテキストを持っています: hello, hellos <xxxyyy>; nice, nicer <uuuvvv>; great, greater <wwwzzz>; そして、互いに<>で挟まれた3つのテキストを書きたいと思います。 xxxyyy uuuvvv wwwzzz 以前に尋ねられた質問を検索していましたが、これらを選択してリストするVBAマクロのセットアップを開始する方法がまだわかりません。


1
Excel UDFの正規表現除外グループに二重引用符を含める方法
この助けを借りて、セル内の特殊文字を識別するExcelの式はありますか?VBAコードとExcel UDF、csvファイルの特殊文字をチェックしています。この式を使用して: =RegExCheck([@ItemTitle],"[^\s,'.()!&%A-Za-z0-9é–_/©™®°¼½¾⅓⅔⅕⅖⅗⅘⅙⅚⅛⅜⅝⅞•-]") この部分で除外したいキャラクターを追加できます [^\s,'.()!&%A-Za-z0-9é–_/©™®°¼½¾⅓⅔⅕⅖⅗⅘⅙⅚⅛⅜⅝⅞•-] ただし、二重引用符"はどの順序でも受け入れられません。"これを追加する方法 [^\s,'.()!&%A-Za-z0-9é–_/©™®°¼½¾⅓⅔⅕⅖⅗⅘⅙⅚⅛⅜⅝⅞•-] Excel UDFの除外グループ。 [^\s"A-Za-z0-9é_/©™®°¼½¾⅓⅔⅕⅖⅗⅘⅙⅚⅛⅜⅝⅞•-]二重引用符を使用すると、開始位置でhttps://regexr.com/で正常に動作しますが、excel 2019 (365)どこでも動作しません。

2
構築した数式が、ExcelのUDFと同じ数式と異なる結果を与えるのはなぜですか?
地球上の2つの座標点間の距離を計算するための長い数式を次に示します。 = ACOS(COS(RADIANS(90-LAT1))* COS(RADIANS(90-LAT2))+ SIN(RADIANS(90-LAT1))* SIN(RADIANS(90-LAT2))* COS(RADIANS(Long1-Long2 )))* 6371 他の数式内で使用するのは少し面倒なので、そのためのユーザー定義関数を作成しました。 関数DistXY(Lat1としてシングル、Lng1としてシングル、Lat2としてシングル、Lng2としてシングル)シングルとして DistXY = WorksheetFunction.Acos(Cos(WorksheetFunction.Radians(90-Lat1))* Cos(WorksheetFunction.Radians(90-Lat2))+ Sin(WorksheetFunction.Radians(90-Lat1))* Sin(WorksheetFunction.Radians(90- Lat2))* Cos(WorksheetFunction.Radians(Lng1-Lng2)))* 6371 終了機能 ご覧のとおり、それらはまったく同じです。VBAにはAcos ou Radians関数がないため、「worksheetFunction」メソッドも使用します。 これらの式を同じXY座標のペアに適用すると、異なる結果が得られるのはなぜですか? 例えば: ABC 45.4960674、-73.514446からXYZ 43.5369、-71.8592へ DistXY()の結果:254.313156128 ロングフォーミュラ法:254.313268914 @raystafarianのコメントと合わせて、すべてのタイプをdoubleに変更すると、精度が向上しました。しかし、まだ違いがあります。 関数DistXY(Lat1としてdouble、Lng1としてdouble、Lat2としてdouble、Lng2としてdouble)doubleとして... 新しい結果: DistXY():254.313268913 5060 km ロングフォーミュラ法:254.313268913 5250 km

0
Word 2013の書誌にハイパーリンクを含める
Wordで生成された参考文献にハイパーリンクを追加するのに苦労しています(word 2013を使用しています)。私は次の解決策を思いつきました(テキストのすべてのインスタンスを検索し、マクロを含むハイパーリンクにするためのレイスタファリアンの回答からいくつかのコードを借りました) Sub Add_Hyperlinks_Bibliography() On Error Resume Next Set rngSearch = ActiveDocument.Range For I = 1 To ActiveDocument.Bibliography.Sources.Count strStyle = "Intensieve benadrukking" strSearch = ActiveDocument.Bibliography.Sources.Item(I).Field("URL") strAddress = strSearch With rngSearch.Find Do While .Execute(findText:=strSearch) = True With rngSearch 'we will work with what is found as it will be the selection …

2
期間文字列をExcelの秒に変換する
アプリケーションから次の形式で出力される一連のデータがあります。 8d 21h 33m 30s 6m 32s 1m 40s 54m 6s 11m 32s 5d 3h 34m 30s 7m 40s 19h 57m 49s 1h 36m 9s 1m 3s 5m 11s 19m 39s これをExcelの次の列の秒数として表示したいと思います。私がこれをPHPまたはPythonで行っていた場合、文字ごとに文字列を分割できました(hおよびm)が、Excelでこれを行う方法はわかりません。誰かが私を正しい方向に向けることができますか?

0
異なるマクロを呼び出す値のハードコーディングを回避するために配列を使用するVBA
ワークブックのシート(シート2)の列Dに値があり、その値は数式から導出され、列Cセルの長い値の最終部分のみを取得します。長い値は、ダブルクリックで列Cに自動的に入力されます。別のシート(Sheet5)には、そのシートのC列に値のリストがあります。Sheet2の列Dの値のいずれかがSheet5の列Cの値のいずれかと等しい場合、Sheet2のF列のセルを赤に変更します。Sheet2のF列セルが赤になると、列Dの値に応じて、赤色のセルがクリック可能になり、列Dの値に関連付けられた参照値を一覧表示する別のシートに移動します。以下のコードそれだけです。 Private Sub Worksheet_Change(ByVal Target As Range) Dim c As Range: Set c = Union(Range("D7:D446"), Range("F7:F446")) Dim CellF As Range, CellD As Range, Cell As Range If Not Application.Intersect(c, Range(Target.Address)) Is Nothing Then Set CellF = Range("F" & Target.Row) Set CellD = Range("D" & Target.Row) If CellF.Value <> "" And …



0
日付と時刻によるExcelのデータの再集計
いくつかの簡単なマクロをうまく作成できましたが、現在の問題は私の能力を超えているようです。-これを行うVBAスクリプトが既に存在しますか? 4つの長いデータ列を持つ一連のファイルがあります。 Identifier Date Time Value 123456 dd/mm/yyyy hh:mm 12.3 15分ごとに記録された15日間のデータが含まれます マクロを作成して、列4の値を15列(各日1行)と96行(24時間の各15分に1行)の日付と時刻でソートされたテーブルに再集計するプロセスを自動化したいそのため 真夜中から00:14の間に記録された値は、行1に表示され、 00:15-00:29には行2などに表示されます。 時折データのギャップがあり、テーブル内のこれらのセルについては、空白を記録したい

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