13
票
承認済み
VBAで、True + 1 が 0 と計算されるのはなぜ?
VBAにおけるTrueは数値に変換すると1ではなく-1となります。そのためTrue + 1は0になります。
なお、Falseは0です。
5
票
メッセージボックスに環境依存文字を表示させたい
VBAはUnicode化されていますが、外部API呼び出しの際には互換のために従来通りANSIバージョン(日本語環境においてはShift_JIS)が使われています。そのためShift_JISに存在しない文字は使用できません。
「非ユニコードプログラムの言語」の設定を変更する回答も挙げられていますが、全てのプログラムに影響するため、ここを変更するのはお勧めできません。
...
4
票
承認済み
親excelからShellで子excelを起動し、子excelが処理した後、親excelの処理を継続したい
Officeは従来、MDI; 親ウィンドウ内に子ウィンドウを開くスタイルでした。その後SDI; ドキュメント毎にウィンドウを開くスタイルに切り替えていきました。Excelは対応が遅れてExcel 2013でSDI化が行われました。
この際、仕様変更があり、EXCEL.EXEプロセスを起動しても既存のインスタンスにドキュメントを引き渡すようになりました。Excel ...
3
票
VBA SPLIT時に『ゞ』でエラーになる問題
Officeの新しめのバージョンでは、そういった問題が起きないようです。
こちらのサイト によりますと、
どうやら AC2007から持ち込まれたバグのようです。
2010/03追記: Access2010でもこのバグは解消されていないようです。
2014/04/10追記: Access2013の最新バージョンでは解消されているようです。
とのことで、...
3
票
承認済み
VBAは二重ループがつかえないのでしょうか?
VBA でも二重ループは使えます。
誤解なさっている点が複数ありそうなので、1つずつ説明します。
For...Next ループは二重にできる
For...Next ループで使うカウンタの名前を変えれば、ループをネストさせることができます。
以下のコードは、九九表を作ります。
Sub Main
For i = 1 To 9
For j = 1 To 9
Cells(i, ...
2
票
Excel VBA プロシージャの処理が終わるまで画面が固まる状況を克服したい
現状のコードを見て気になった点です。
1)DoEventsがコメントアウトされていますが、実際はアンコメントされていますよね?
2)変数W_LCntは、処理件数ということですか?
だとすると、
UserForm1.ProgressBar1.Value = W_LCnt / 100
ではなく、
UserForm1.ProgressBar1.Value = (W_LCnt / (...
2
票
逆から総和を求めるプログラムが上手くいきません
If 条件 Then
条件が真のときの処理
Else
条件が偽のときの処理
End If
IF文は上記のように条件分岐を行うので、
lX > lYの場合、lS = -1のみが実行され
その他の場合は、ElseからEnd Ifまでの処理が実行されます。
lSの値を設定するための条件分岐であれば
Else: lS = 1の次の行にEnd Ifを移動すればよいと思います。
2
票
承認済み
2
票
Word文書内の複数の文字列をイタリックに変換する方法
cubik♦さま、kunifさま、コメント頂きありがとうございました。
VBAは初めてで完全に横着して質問をしてしまったのですが、少し勉強して以下のように解決することができました。
斜体にしたい文字列のレコードをcsvで作成し、VBA上でcsvファイルの参照・一致を確認・イタリックに置換の3ステップを経ました。
なお、list.csvの中身は、1列目に"文字列1"、"...
2
票
承認済み
C#で作ったCOM dll内の配列にはどのようにアクセスすればよいか
UnmanagedType.SafeArrayの例を読む限り
public void GetItems(out Item[] items)
この部分を
public void GetItems([In, Out, MarshalAs(UnmanagedType.SafeArray)] ref Item[] items)
と書くことでVBA側は
Dim items As Item()
app....
2
票
承認済み
Excelのセルに時間を楽に入力する方法が知りたいです。
書き換える必要のある部分だけ抜き出すと多少楽かもしれません。
同シートに非表示列を作りたくなければ値だけコピーして清書用のシートに貼り付けるなど。
開始時刻(非表示セル)
作業時間(非表示セル)
表示列用関数
表示サンプル
9(手入力)
2(手入力)
=text(A1/24,"h:mm")&" ~ "&text(A1/24+B1/24,&...
2
票
承認済み
VBA 実行時のエラー コンパイルエラー(変数が定義されていません)の解決方法
wsData変数が宣言されていないのが原因ではないでしょうか。
手元の環境で下記のように書き換えたところ正常に実行できました。
Sub ボタン1_Click()
Dim ws As Worksheet
Set ws = Workbooks("test_list.xlsx").Worksheets(1)
Dim wsData As Worksheet
Set wsData = ...
2
票
C#で作ったCOM内の配列要素にアクセスができない
VBにおけるUBoundは「個数」ではなく、「添え字の最大数」です。
元のC#のコードでは「new Member[2]」(要素数2)に対して、「Member[2] = ...」というように要素数3を期待しているコードがありますが、要素数はどちらでしょうか?
要素数2が正しく、LBoundが1であれば、添え字が1と2でアクセスできる2個の配列となっているのでしょう。ぜひ、...
2
票
VBA の正規表現でマッチした文字列を後読みを使わず取り出すには?
(.*?)のように(括弧)を使ってグループ化することでSubMatchesで���り出せます。
Sub ボタン1_Click()
Dim re As RegExp
Set re = New RegExp
re.Pattern = "【(.*?)】"
Set matches = re.Execute("hoge【fuga】piyo"...
2
票
1
票
ADODBによるSelect文で行番号も取得したい
SQLの中にTABLE AとBそれぞれサブクエリをかませて仮に行番号用のIDを振る形はいかがでしょうか
AccessなどRow_Number()を使用できないDBでもサブクエリを作成して行番号を取得するためのSQLなどはサンプルが検索できます。
ただ、サブクエリ乱発は可読性は落ちると思います。
自分ならば 一旦 バッファ用のシートにSelect * from ...
1
票
VBAにおけるmonth関数について
本件について、このような仕様があるのかについてご存知の方がいれば教えていただきたいです。
エクセルで 未入力のセルが 数字の 0 と判断され、仕様 によって 1899/12/30 と解釈されるためです。
以下に 詳しい説明を書きます、興味があれば・・。
昔 Joel Spolsky (ジョエル スポルスキー) さん(Excel ver 5 の時の 設計に携わった人) が 『Microsoft ...
1
票
RangeオブジェクトのSpecialCells
プログラムの
Dim RangeObj as Range
Set Range = ActiveSheet.Range("A4:A7")
を実行した時点では、変数RangeObjはRange型であると宣言されているだけで、初期化されていません(値は入っていません)。
変数Rangeは初期化されて、ActiveSheet.Range("A4:A7")という値を持っています。
そういう状態で
...
1
票
Office365 OPP(64bit)環境のExcel VBAでOutlook Mail送信が失敗する。
コメントありがとうございます。
諸々の手段を試しましたが、どうしてもダメだったので、職場の管理担当部署へ問い合わせたところ、独自のセキュリティ設定が邪魔しているようでした。
コード自体はおそらく問題なく、自社の環境の問題でした。
大変お騒がせいたしまして、申し訳ございません。
1
票
オブジェクトは、このプロパティまたはメソッドをサポートしていません (エラー 438)
質問に書かれたコードで、oRFCは定義されていません。
それなのに、「oRFC.Add("BAPI_USER_GETLIST")」と定義されていないoRFCのAdd(oRFC.Addとなっているので、AddはoRFCのプロパティかメソッドだと推測される)を使おうとした為、
『このプロパティまたはメソッドをサポートしていません』というエラーになったのです。
プログラムの最初のほうで、...
1
票
xlwingsのUDFは、エクセルでは必ず揮発性関数扱いになるのでしょうか?
自己回答です。単純でした。pythonは関係ないです。最終的に、以下のようなvba Functionで、他セルを参照した場合、参照先(の参照先...)に、Offset等揮発性関数があると、どんなCellを更新しようが再計算が���達して結局再計算します。すなわち、Book中のとあるSheetを更新しただけで、OffsetがはいっているSheetはすべて再計算されることになります。やっと納得できました。
...
1
票
VBAでRPAがしたいのでヒントをください
自分ならwin32apiを使いたおしやすい他の言語(c,cpp,c#とか)でDLLを作りエクセルから呼ぶ
vba側はできるだけ、大まかな制御と、エクセルとのやりとりをするだけにする
vbaでwin32apiを駆使するのはシンドイかな、
細かい制御のネタはc言語系なら山盛りあると思います
1
票
AccessVBA メインのアクセスから別のアクセスを開くときにフォームを開かせない方法
こんにちは。
OpenCurrentDatabaseでは、起動オプションを無効にして開くことはできなさそうですね。
第一引数のExclusiveは排他で開くかどうかなので、関係ないです。
ちょっと強引な感じですが、SendInput関数を使えばできます。
参考URL
http://blogwizhook.blog.fc2.com/blog-entry-151.html
1
票
excel のデータ分析グラフの時間の目盛を0からにする
Excelの日付は、1900年1月1日からの経過日数を表すシリアル値です。2個の年月日時間のセルがある場合に、その差をとって、24*60を掛けると分の経過時間になります。シートの方で、分の経過時間を計算して、x軸を「年月日時間表示」の列(行)から「分の経過時間」の列(行)に変更すれば修正されます。
=(B3-B$2)*24*60
1
票
VBAでpythonを動かしたときのpermissionErrorの解決方法
Excelのファイルが起動されている場合、そのファイルは、他のアプリケーションからは読み取りも書き込みも禁止になります。auto_pyの中で起動中のExcelのファイルにアクセスしているとそのエラーが発生します。
一般的には、そのExcelのファイルを閉じてから実行すればいいのですが、もし、そのExcelのファイルがそのVBAがあるファイルであれば閉じることができないので、...
1
票
Bitnami Redmine でインストールした MySQL への VBA からの接続方法について教えてください
bitnamiからredmineをインストールとのことですが、稼働させているOSと、インストールの形態(ローカルホスト上での直接動作、ローカルホスト上にゲストOSいれての動作←OVAでの提供があるので等)の情報があると切り分けられるかと思います。
ODBCはhttpプロトコルでの接続ではないので、http://xxx.xxx.xxx.xxxではありません。
また、...
1
票
Excel Macro : Error 9, If × Countif
VBAのエラーコード 9は、”インデックスが有効範囲にありません”("Index Out of Range")というエラーです。
WorksheetFunction.CountIf(Worksheets(Unsubscribers), Range("A:A").Value
で使われている Unsubscribers は質問のコードの中で宣言されていないし、値の代入もされていませんから、その値は ...
1
票
vbaの計算式が空文字を参照と判定できますか
ワークシート関数でセルが空白であるか判定するにはISBLANKを使用すればよいです。
参照先が空白の場合、数値として扱いたくないのであればIFを併用して
Cells(2, 2).FormulaR1C1 = "=IF(ISBLANK(RC[-1]),"""",RC[-1]+6)"
のように分岐することができます。
...
無効化に投票