!extend:checked:vvvvv:1000:512
ExcelのVBAに関する質問スレです
コード書き込みや作成依頼もOK
※前スレ
Excel VBA 質問スレ Part63
https://mevius.5ch.net/test/read.cgi/tech/1568630099/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
探検
Excel VBA 質問スレ Part64
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 23d0-o7DB)
2019/12/02(月) 23:43:54.18ID:ngrqyTy202デフォルトの名無しさん (ドコグロ MM1d-w5bQ)
2019/12/03(火) 00:17:07.29ID:C8UnG3E4M >>1
MSgbox "乙"
MSgbox "乙"
3デフォルトの名無しさん (ワッチョイ 8101-MhVQ)
2019/12/03(火) 06:50:45.90ID:EPisquqd0 北海道のグラサンのハゲはここにこないのー?
4デフォルトの名無しさん (ササクッテロラ Sp79-SL5O)
2019/12/03(火) 07:23:30.55ID:0rVoayhJp 前レスナンバー999
なんとなくわかるけど
a = msgbox 文字列
これならmsgboxが戻り値とわかるが
cells.border()
これはborderの戻り値が〜じゃなくてcellsの戻り値がボーダーに入ってんじゃないの?
関係図を教えて
なんとなくわかるけど
a = msgbox 文字列
これならmsgboxが戻り値とわかるが
cells.border()
これはborderの戻り値が〜じゃなくてcellsの戻り値がボーダーに入ってんじゃないの?
関係図を教えて
5デフォルトの名無しさん (ワッチョイ f602-FWG3)
2019/12/03(火) 09:16:21.04ID:9IKqMgsD06デフォルトの名無しさん (ワッチョイ f191-iiDQ)
2019/12/03(火) 10:50:38.75ID:eFWYyMY/0 セルのボーダーのラインスタイルの戻り値にxlInsideHorizontalを入れようとしている。
7デフォルトの名無しさん (ワッチョイ 92b1-W09L)
2019/12/03(火) 16:53:00.11ID:HVSFa5J10 >>4
Cells(i, j).Borders(xlDiagonalDown).LineStyle = xlInsideHorizontal
↑色々省略されている。
↓なるべく略さずに書き直してみる。
Let Excel.Application.ActiveSheet.Cells(i,
j).Borders(xlDiagonalDown).LineStyle = xlInsideHorizontal
先頭の「Let」はステートメント(命令)で、「この行のコードの右辺の値を左辺に
代入してね」という命令になっている。
また、このコード例の場合、ピリオドの右に続く単語はすべて(たまたま)「プロパ
ティ」になっている。
だが、「ApplicationプロパティのActiveSheetプロパティ」だとか「Cellsプロパ
ティのBordersプロパティ」だとかいう語は成り立たない。
ExcelオブジェクトライブラリのApplicationプロパティにより、Applicationクラス
のインスタンス(Applicationオブジェクト)を参照(Get)
→ApplicationオブジェクトのActiveSheetプロパティにより、Worksheetクラスのイ
ンスタンス(WorkSheetオブジェクト)を参照(Get)
→WorkSheetオブジェクトのCellsプロパティにより、Rangeクラスのインスタンス
(Rangeオブジェクト)を参照(Get)
(Rangeオブジェクトのデフォルトプロパティの引数にi・jを指定し、Rangeクラ
スの別のインスタンス=Rangeオブジェクトを参照)
→RangeオブジェクトのBordersプロパティにより、Bordersクラスのインスタン
ス(Bordersオブジェクト)を参照(Get)
(Bordersオブジェクトのデフォルトプロパティの引数にxlDiagonalDownを指
定し、Borderクラスのインスタンス=Borderオブジェクトを参照)
→BorderオブジェクトのLineStyleプロパティにxlInsideHorizontalを代入
(Let)してね(=LineStyleプロパティプロシージャの引数にxlInsideHorizontalを指
定して、LineStyleプロパティプロシージャを実行してね)。
Cells(i, j).Borders(xlDiagonalDown).LineStyle = xlInsideHorizontal
↑色々省略されている。
↓なるべく略さずに書き直してみる。
Let Excel.Application.ActiveSheet.Cells(i,
j).Borders(xlDiagonalDown).LineStyle = xlInsideHorizontal
先頭の「Let」はステートメント(命令)で、「この行のコードの右辺の値を左辺に
代入してね」という命令になっている。
また、このコード例の場合、ピリオドの右に続く単語はすべて(たまたま)「プロパ
ティ」になっている。
だが、「ApplicationプロパティのActiveSheetプロパティ」だとか「Cellsプロパ
ティのBordersプロパティ」だとかいう語は成り立たない。
ExcelオブジェクトライブラリのApplicationプロパティにより、Applicationクラス
のインスタンス(Applicationオブジェクト)を参照(Get)
→ApplicationオブジェクトのActiveSheetプロパティにより、Worksheetクラスのイ
ンスタンス(WorkSheetオブジェクト)を参照(Get)
→WorkSheetオブジェクトのCellsプロパティにより、Rangeクラスのインスタンス
(Rangeオブジェクト)を参照(Get)
(Rangeオブジェクトのデフォルトプロパティの引数にi・jを指定し、Rangeクラ
スの別のインスタンス=Rangeオブジェクトを参照)
→RangeオブジェクトのBordersプロパティにより、Bordersクラスのインスタン
ス(Bordersオブジェクト)を参照(Get)
(Bordersオブジェクトのデフォルトプロパティの引数にxlDiagonalDownを指
定し、Borderクラスのインスタンス=Borderオブジェクトを参照)
→BorderオブジェクトのLineStyleプロパティにxlInsideHorizontalを代入
(Let)してね(=LineStyleプロパティプロシージャの引数にxlInsideHorizontalを指
定して、LineStyleプロパティプロシージャを実行してね)。
8デフォルトの名無しさん (ワッチョイ f191-iiDQ)
2019/12/03(火) 16:57:39.86ID:eFWYyMY/0 >>7
多分、初心者は何言ってるかサッパリ分からんだろうなw
多分、初心者は何言ってるかサッパリ分からんだろうなw
9デフォルトの名無しさん (アウアウカー Sab1-W09L)
2019/12/03(火) 18:21:24.00ID:0X+RZN9Ra10デフォルトの名無しさん (アウアウカー Sab1-W09L)
2019/12/03(火) 18:47:20.18ID:0X+RZN9Ra >>7
って、なんかめちゃくちゃ改行入っとる・・・
書き直し。
Let Excel.Application.ActiveSheet.Cells(i, j).Borders(xlDiagonalDown).LineStyle = xlInsideHorizontal
ExcelオブジェクトライブラリのApplicationプロパティにより、Applicationクラスのインスタンス(Applicationオブジェクト)を参照(Get)
→ApplicationオブジェクトのActiveSheetプロパティにより、Worksheetクラスのインスタンス(Worksheetオブジェクト)を参照(Get)
→WorksheetオブジェクトのCellsプロパティにより、Rangeクラスのインスタンス(Rangeオブジェクト)を参照(Get)
(Rangeオブジェクトのデフォルトプロパティの引数にi・jを指定し、Rangeクラスの別のインスタンス=Rangeオブジェクトを参照)
→RangeオブジェクトのBordersプロパティにより、Bordersクラスのインスタンス(Bordersオブジェクト)を参照(Get)
(Bordersオブジェクトのデフォルトプロパティの引数にxlDiagonalDownを指定し、Borderクラスのインスタンス=Borderオブジェクトを参照)
→BorderオブジェクトのLineStyleプロパティにxlInsideHorizontalを代入(Let)してね(=LineStyleプロパティプロシージャの引数にxlInsideHorizontalを指定して、LineStyleプロパティプロシージャを実行してね)。
って、なんかめちゃくちゃ改行入っとる・・・
書き直し。
Let Excel.Application.ActiveSheet.Cells(i, j).Borders(xlDiagonalDown).LineStyle = xlInsideHorizontal
ExcelオブジェクトライブラリのApplicationプロパティにより、Applicationクラスのインスタンス(Applicationオブジェクト)を参照(Get)
→ApplicationオブジェクトのActiveSheetプロパティにより、Worksheetクラスのインスタンス(Worksheetオブジェクト)を参照(Get)
→WorksheetオブジェクトのCellsプロパティにより、Rangeクラスのインスタンス(Rangeオブジェクト)を参照(Get)
(Rangeオブジェクトのデフォルトプロパティの引数にi・jを指定し、Rangeクラスの別のインスタンス=Rangeオブジェクトを参照)
→RangeオブジェクトのBordersプロパティにより、Bordersクラスのインスタンス(Bordersオブジェクト)を参照(Get)
(Bordersオブジェクトのデフォルトプロパティの引数にxlDiagonalDownを指定し、Borderクラスのインスタンス=Borderオブジェクトを参照)
→BorderオブジェクトのLineStyleプロパティにxlInsideHorizontalを代入(Let)してね(=LineStyleプロパティプロシージャの引数にxlInsideHorizontalを指定して、LineStyleプロパティプロシージャを実行してね)。
11デフォルトの名無しさん (ササクッテロラ Sp79-SL5O)
2019/12/03(火) 19:15:56.54ID:0rVoayhJp12デフォルトの名無しさん (ワッチョイ f668-3RYV)
2019/12/03(火) 20:14:07.74ID:GoxUwlnv0 メソッドの引数は普通だけど、プロパティの引数って特別な呼び方ある?
よく考えたら他の言語にプロパティの引数って見たことないような
よく考えたら他の言語にプロパティの引数って見たことないような
13デフォルトの名無しさん (ワッチョイ 9201-MhVQ)
2019/12/03(火) 21:25:51.83ID:qY14OTyg014デフォルトの名無しさん (アークセー Sx79-CWam)
2019/12/03(火) 22:00:54.56ID:Af3RUiJcx >>12
インデクサの一種だろ
インデクサの一種だろ
15デフォルトの名無しさん (ワッチョイ 924f-/yZp)
2019/12/03(火) 23:06:13.37ID:h3dlk8FC0 インスタンス?
VB.Netとかだと最初の1日目か2日目に学習することだとか言ったらまた荒れるんだろうなぁ
VB.Netとかだと最初の1日目か2日目に学習することだとか言ったらまた荒れるんだろうなぁ
16デフォルトの名無しさん (アークセー Sx79-CWam)
2019/12/03(火) 23:11:52.57ID:Af3RUiJcx インスタンスとクラスが分からないとお話にならんわな
式で参照取得しているものが何なのかまるで分かってないってことだから
式で参照取得しているものが何なのかまるで分かってないってことだから
17デフォルトの名無しさん (ワッチョイ adda-WKXI)
2019/12/04(水) 00:04:05.95ID:teYzVY+x0 上級者でもわかってないと思うけどな。
シートモジュールに書くと、エラー出た時に、どこで止まったか分からないから、
標準モジュール書け!とかさwww
シートモジュールに書くと、エラー出た時に、どこで止まったか分からないから、
標準モジュール書け!とかさwww
18デフォルトの名無しさん (ワッチョイ f191-iiDQ)
2019/12/04(水) 07:44:27.63ID:95sMFvbJ0 そんな話じゃね―だろ。
Cells(1, 1)はA1セルを返す。
Cells(1, 1).Borders(xlDiagonalDown)はA1セルの右下がり斜め線の罫線を返す。
Cells(1, 1).Borders(xlDiagonalDown).LineStyleはA1セルの右下がり斜め線の罫線の線スタイルを返す。
Cells(1, 1).Borders(xlDiagonalDown).LineStyle = xlContinuousはA1セルの右下がり斜め線の罫線の線スタイルに直線を代入(設定)している。
初心者はこの程度の理解でOK。
Cells(1, 1)はA1セルを返す。
Cells(1, 1).Borders(xlDiagonalDown)はA1セルの右下がり斜め線の罫線を返す。
Cells(1, 1).Borders(xlDiagonalDown).LineStyleはA1セルの右下がり斜め線の罫線の線スタイルを返す。
Cells(1, 1).Borders(xlDiagonalDown).LineStyle = xlContinuousはA1セルの右下がり斜め線の罫線の線スタイルに直線を代入(設定)している。
初心者はこの程度の理解でOK。
19デフォルトの名無しさん (ワッチョイ f191-iiDQ)
2019/12/04(水) 07:45:37.52ID:95sMFvbJ0 >>17
それは上級者ではない。
それは上級者ではない。
20デフォルトの名無しさん (アウアウウー Sacd-W09L)
2019/12/04(水) 07:49:29.48ID:k4fgFX/Ba >>17
自分で作ってないだろ
自分で作ってないだろ
21デフォルトの名無しさん (スプッッ Sd69-Hu9A)
2019/12/04(水) 12:58:07.59ID:pTwF3wZxd クリップボードの文字を操作するのはdataobjectで可能らしいですが、
スクショ撮った後に任意の座標の画素値を自動で取得するのは不可能なのでしょうか?
また、やるとするとシートに画像貼り付け→画像をbmp保存→その画像をバイナリで読み込みという流れになってしまうのでしょうか?
スクショ撮った後に任意の座標の画素値を自動で取得するのは不可能なのでしょうか?
また、やるとするとシートに画像貼り付け→画像をbmp保存→その画像をバイナリで読み込みという流れになってしまうのでしょうか?
22デフォルトの名無しさん (アークセー Sx79-CWam)
2019/12/04(水) 13:01:40.27ID:T2HYa+hHx23デフォルトの名無しさん (ワッチョイ f191-iiDQ)
2019/12/04(水) 14:05:40.23ID:95sMFvbJ024デフォルトの名無しさん (ワッチョイ f191-iiDQ)
2019/12/04(水) 14:06:26.73ID:95sMFvbJ0 >>21
シートに画像貼り付けとか必要無い。
シートに画像貼り付けとか必要無い。
25デフォルトの名無しさん (スプッッ Sd69-Hu9A)
2019/12/04(水) 18:01:03.06ID:pTwF3wZxd >>23
やりたいこととしては、囲碁やオセロなどのゲーム中に、盤面をリアルタイムにスクショ等をして、そこから各座標の色を読み込むことで盤面をデータ化するという流れなのですが、画像保存の手間を省けるのであれば教えて頂きたいです。
dataobjectだとgettextでテキストのクリップボードは読み込めるのですが、スクショだとできませんでした、、
やりたいこととしては、囲碁やオセロなどのゲーム中に、盤面をリアルタイムにスクショ等をして、そこから各座標の色を読み込むことで盤面をデータ化するという流れなのですが、画像保存の手間を省けるのであれば教えて頂きたいです。
dataobjectだとgettextでテキストのクリップボードは読み込めるのですが、スクショだとできませんでした、、
26デフォルトの名無しさん (ワッチョイ 0dce-3RYV)
2019/12/04(水) 20:05:12.18ID:RAKlTKsZ0 >>25
いちいちクリップボードにスクショを入れなくても、ゲーム画面のデバイスコンテキストがわかれば、自由にピクセルの色を調べたり、逆にピクセルを書き込んだりできる
http://excel.syogyoumujou.com/memorandum/get_dc.html
いちいちクリップボードにスクショを入れなくても、ゲーム画面のデバイスコンテキストがわかれば、自由にピクセルの色を調べたり、逆にピクセルを書き込んだりできる
http://excel.syogyoumujou.com/memorandum/get_dc.html
27デフォルトの名無しさん (ワッチョイ 5e46-Hu9A)
2019/12/04(水) 20:36:16.46ID:M9X3+qe90 >>26
デバイスコンテキストなるものがあるのですか、、知らない概念でした、、
スクショ取るのは余計なステップだったのですね。素人にはこの発想しかなかったです
難しそうでまだざっとみただけですが、画面の画像認識系の自動化はこのやり方が基本なのですかね。
ゆっくり読んでやってみます!ありがとうございます
デバイスコンテキストなるものがあるのですか、、知らない概念でした、、
スクショ取るのは余計なステップだったのですね。素人にはこの発想しかなかったです
難しそうでまだざっとみただけですが、画面の画像認識系の自動化はこのやり方が基本なのですかね。
ゆっくり読んでやってみます!ありがとうございます
28デフォルトの名無しさん (ワッチョイ 5e46-Hu9A)
2019/12/04(水) 20:46:11.63ID:M9X3+qe90 ちなみにスクショでも可能とありましたが、その際はdataobjectではなく同様にwin32apiの何かを使うことになるのでしょうか
29デフォルトの名無しさん (アークセー Sx79-CWam)
2019/12/04(水) 21:17:45.91ID:le08Bijgx gdiplus.dllを使う感じかな
30デフォルトの名無しさん (スプッッ Sd12-iiDQ)
2019/12/04(水) 21:46:06.48ID:z+3QCMVld31デフォルトの名無しさん (ワッチョイ 5e46-Hu9A)
2019/12/04(水) 21:57:16.24ID:M9X3+qe9032デフォルトの名無しさん (アークセー Sxc1-8b9E)
2019/12/06(金) 08:56:17.67ID:jTNEW24Lx VBAスレの方でも質問させていただいたのですが、こちらのスレにも詳しい方がいらっしゃるようなので、質問させてください
Exchange / Outtlook VBAの質問です
初歩的な質問で申し訳ありません
任意の名前を持つ配布リストや連絡先グループに属するExchangeユーザーのSMTPアドレスの一覧を取得するにはどうしたら良いのでしょうか
配布リストや連絡先グループをExchange ユーザーとして取得するところまでは出来ているのですが、そこから先がうまくいきません
なお配布リスト、連絡先グループいずれも個人ユーザーのみが登録されている前提なので、再帰によるメンバー取得は不要な状況です
Exchange / Outtlook VBAの質問です
初歩的な質問で申し訳ありません
任意の名前を持つ配布リストや連絡先グループに属するExchangeユーザーのSMTPアドレスの一覧を取得するにはどうしたら良いのでしょうか
配布リストや連絡先グループをExchange ユーザーとして取得するところまでは出来ているのですが、そこから先がうまくいきません
なお配布リスト、連絡先グループいずれも個人ユーザーのみが登録されている前提なので、再帰によるメンバー取得は不要な状況です
33デフォルトの名無しさん (ドコグロ MM43-cb5P)
2019/12/06(金) 12:30:08.82ID:G0zfLpZEM34デフォルトの名無しさん (ワッチョイ 7501-cb5P)
2019/12/06(金) 18:27:30.78ID:c6fF/5cl0 yokokara
35デフォルトの名無しさん (ワッチョイ 4d7c-TCJi)
2019/12/06(金) 20:54:35.91ID:Nvs1NFCt0 >>32
先に質問した方でちゃんと断ったん?
先に質問した方でちゃんと断ったん?
36デフォルトの名無しさん (ワッチョイ 9b68-Fgt1)
2019/12/06(金) 21:19:32.34ID:CNjj6fiz0 outlookを使わなければならないような身の上には同情する
さすがに人少なそうだしいいんじゃないかな
俺はoutlook自体持ってないから良くわからないや。あれまだあるのか
さすがに人少なそうだしいいんじゃないかな
俺はoutlook自体持ってないから良くわからないや。あれまだあるのか
37デフォルトの名無しさん (ドコグロ MM93-5nhq)
2019/12/06(金) 21:25:37.04ID:I1is1QTTM 今のOutlookは使いやすくなってるよ
俺の中のOutlookは2000で止まってたから久々に使うことになってびっくりした
もはや別物
俺の中のOutlookは2000で止まってたから久々に使うことになってびっくりした
もはや別物
38デフォルトの名無しさん (ワッチョイ 9b68-Fgt1)
2019/12/06(金) 21:33:39.56ID:CNjj6fiz0 そうなのか?
大変そうだしoutlook入ってるし使ってみるか、と思ったらメールアドレスが必要なので諦めた
頑張って!
大変そうだしoutlook入ってるし使ってみるか、と思ったらメールアドレスが必要なので諦めた
頑張って!
39デフォルトの名無しさん (ワッチョイ 4d7c-TCJi)
2019/12/06(金) 22:46:30.30ID:Nvs1NFCt0 2013時点ではまだ使いにくい…
40デフォルトの名無しさん (オッペケ Src1-paXL)
2019/12/08(日) 04:18:02.80ID:b513l43Er 正直メール関係でマクロは怖いな
ローカルでサーバ建ててテストするならともかくExchangeでいきなり本番環境でしょ?
ローカルでサーバ建ててテストするならともかくExchangeでいきなり本番環境でしょ?
41デフォルトの名無しさん (アークセー Sxc1-8b9E)
2019/12/08(日) 09:25:05.41ID:om5egmGHx アカウント情報やOutlookアイテムの読み取り、アイテムダウンロードだけならExchange環境でのマクロ使用を恐れる理由はないかと思う
42デフォルトの名無しさん (ワッチョイ ed02-Cr2n)
2019/12/08(日) 16:03:51.58ID:Bl/pyruh0 すみません、お力を貸して頂きたいです。超初心者です。
固定長形式テキストデータを読み込んでExcelに落としたいのですが、ファイルの名前がその時によって違うので、下記のようにファイル名固定ではなく、
”C:\test\"をオープンさせてその中から選択したテキストデータを読み込むようにしたいです。
試行錯誤しているのですが、作成完了まで時間がなく基礎的な知識も足りず、、 そのように書き換えて頂けないでしょうか;;
Sub READ_test()
Const cnsFILENAME = "\test1.txt"
Dim FSO As New FileSystemObject ' FileSystemObject
Dim TS As TextStream ' TextStream
Dim GYO As Long ' 収容するセルの行
Dim strREC As String ' レコードを収容する変数
' 指定ファイルをOPEN(入力モード)
Set TS = FSO.OpenTextFile(ThisWorkbook.Path & cnsFILENAME, ForReading, False)
' 2行目から開始
Rows("2:65536").ClearContents
GYO = 2
Do Until TS.AtEndOfStream
' レコードの読み込み(改行発見までの可変長⇒Ascii変換)
strREC = StrConv(TS.ReadLine, vbFromUnicode)
' 1レコード分のセルへのセット
Call GP_EDIT_FixLngRec(strREC, GYO)
' 行を加算
GYO = GYO + 1
Loop
' 指定ファイルをCLOSE
TS.Close
Set TS = Nothing
Set FSO = Nothing
End Sub
固定長形式テキストデータを読み込んでExcelに落としたいのですが、ファイルの名前がその時によって違うので、下記のようにファイル名固定ではなく、
”C:\test\"をオープンさせてその中から選択したテキストデータを読み込むようにしたいです。
試行錯誤しているのですが、作成完了まで時間がなく基礎的な知識も足りず、、 そのように書き換えて頂けないでしょうか;;
Sub READ_test()
Const cnsFILENAME = "\test1.txt"
Dim FSO As New FileSystemObject ' FileSystemObject
Dim TS As TextStream ' TextStream
Dim GYO As Long ' 収容するセルの行
Dim strREC As String ' レコードを収容する変数
' 指定ファイルをOPEN(入力モード)
Set TS = FSO.OpenTextFile(ThisWorkbook.Path & cnsFILENAME, ForReading, False)
' 2行目から開始
Rows("2:65536").ClearContents
GYO = 2
Do Until TS.AtEndOfStream
' レコードの読み込み(改行発見までの可変長⇒Ascii変換)
strREC = StrConv(TS.ReadLine, vbFromUnicode)
' 1レコード分のセルへのセット
Call GP_EDIT_FixLngRec(strREC, GYO)
' 行を加算
GYO = GYO + 1
Loop
' 指定ファイルをCLOSE
TS.Close
Set TS = Nothing
Set FSO = Nothing
End Sub
43デフォルトの名無しさん (ワッチョイ ed02-Cr2n)
2019/12/08(日) 16:05:10.30ID:Bl/pyruh0 続き
Private Sub GP_EDIT_FixLngRec(strREC As String, GYO As Long)
Cells(GYO, 1).Value = FP_GET_REC_To_String(strREC, 1, 5)
Cells(GYO, 2).Value = FP_GET_REC_To_String(strREC, 6, 5)
End Sub
Private Function FP_GET_REC_To_String(strREC As String, _
lngStrPos As Long, _
lngLngs As Long) As String
Dim strREC2 As String
strREC2 = Trim(StrConv(MidB(strREC, lngStrPos, lngLngs), vbUnicode))
FP_GET_REC_To_String = strREC2
End Function
Private Function FP_GET_REC_To_Numeric(strREC As String, _
lngStrPos As Long, _
lngLngs As Long) As Currency
Dim strREC2 As String
strREC2 = StrConv(MidB(strREC, lngStrPos, lngLngs), vbUnicode)
FP_GET_REC_To_Numeric = CCur(strREC2)
End Function
Private Sub GP_EDIT_FixLngRec(strREC As String, GYO As Long)
Cells(GYO, 1).Value = FP_GET_REC_To_String(strREC, 1, 5)
Cells(GYO, 2).Value = FP_GET_REC_To_String(strREC, 6, 5)
End Sub
Private Function FP_GET_REC_To_String(strREC As String, _
lngStrPos As Long, _
lngLngs As Long) As String
Dim strREC2 As String
strREC2 = Trim(StrConv(MidB(strREC, lngStrPos, lngLngs), vbUnicode))
FP_GET_REC_To_String = strREC2
End Function
Private Function FP_GET_REC_To_Numeric(strREC As String, _
lngStrPos As Long, _
lngLngs As Long) As Currency
Dim strREC2 As String
strREC2 = StrConv(MidB(strREC, lngStrPos, lngLngs), vbUnicode)
FP_GET_REC_To_Numeric = CCur(strREC2)
End Function
44デフォルトの名無しさん (ドコグロ MM49-5nhq)
2019/12/08(日) 16:14:11.41ID:/kMCly/xM 目がチカチカするから大文字変数関数やめろ
COBOLかよ
COBOLかよ
45デフォルトの名無しさん (アークセー Sxc1-8b9E)
2019/12/08(日) 16:57:19.39ID:om5egmGHx ' 指定ファイルをOPEN(入力モード)
Dim cDir As String
Dim srcName As String
srcName = "C:\test"
With Application.FileDialog(msoFileDialogFilePicker)
.InitialFileName = srcName
.Show
If .SelectedItems.Count = 0 Then Exit Sub
srcName = .SelectedItems(1)
End With
Set TS = FSO.OpenTextFile(srcName, ForReading, False)
' 2行目から開始
ファイル名指定の箇所だけ一部書き換えてみたので試してみて
ちなみにこの手のcsv読み込み作業は一からvbaでスクラッチするよりも今やQueryTable使った方が早いと思うので、暇があったら調べるといいよ
Dim cDir As String
Dim srcName As String
srcName = "C:\test"
With Application.FileDialog(msoFileDialogFilePicker)
.InitialFileName = srcName
.Show
If .SelectedItems.Count = 0 Then Exit Sub
srcName = .SelectedItems(1)
End With
Set TS = FSO.OpenTextFile(srcName, ForReading, False)
' 2行目から開始
ファイル名指定の箇所だけ一部書き換えてみたので試してみて
ちなみにこの手のcsv読み込み作業は一からvbaでスクラッチするよりも今やQueryTable使った方が早いと思うので、暇があったら調べるといいよ
46デフォルトの名無しさん (ワッチョイ ed02-Cr2n)
2019/12/08(日) 17:19:26.73ID:Bl/pyruh047デフォルトの名無しさん (アークセー Sxc1-8b9E)
2019/12/08(日) 17:46:46.44ID:om5egmGHx48デフォルトの名無しさん (ワッチョイ ed02-Cr2n)
2019/12/08(日) 18:05:03.89ID:Bl/pyruh049デフォルトの名無しさん (ワッチョイ 4bda-Fgt1)
2019/12/08(日) 20:46:43.66ID:m4NCsCKi0 教えて下さい。
役所のWeb公開している、DL済みxlsxファイルの「前回更新日時」を取得して
自book特定セルに落とそうと、
Webを漁って以下のVBAを書いてみた。
※ なんでわざわざプロパティの「前回更新日時」を取得するのかというと
ただの「更新日時」では、自分がDLした日時になってしまうから。
Public Sub getFileLastSaveTimeButton()
With CreateObject("Excel.Application")
.Visible = False
With .Workbooks.Open(Cells(8, 1).Value)
Cells(8, 2).Value = .BuiltinDocumentProperties("Last save time").Value
End With
.Quit
End With
End Sub
Cell(8,1).Value の(8, 1)=A8セルに
目的のファイルのフルパスを入力済みなんだけど、
ここを定義された名前に置き換えたい。
Worksheetで普通に
A8 = R_TargetFullPath
と名前を定義して
VBA上で
With .Workbooks.Open(R_TargetFullPath)
としたら
実行時エラー '1004':
申し訳ございません。が見つかりません。
名前が変更されたか、移動や削除が行われた可能性があります。
と出てしまうのは、なんでだろ?
Public Subだから?
役所のWeb公開している、DL済みxlsxファイルの「前回更新日時」を取得して
自book特定セルに落とそうと、
Webを漁って以下のVBAを書いてみた。
※ なんでわざわざプロパティの「前回更新日時」を取得するのかというと
ただの「更新日時」では、自分がDLした日時になってしまうから。
Public Sub getFileLastSaveTimeButton()
With CreateObject("Excel.Application")
.Visible = False
With .Workbooks.Open(Cells(8, 1).Value)
Cells(8, 2).Value = .BuiltinDocumentProperties("Last save time").Value
End With
.Quit
End With
End Sub
Cell(8,1).Value の(8, 1)=A8セルに
目的のファイルのフルパスを入力済みなんだけど、
ここを定義された名前に置き換えたい。
Worksheetで普通に
A8 = R_TargetFullPath
と名前を定義して
VBA上で
With .Workbooks.Open(R_TargetFullPath)
としたら
実行時エラー '1004':
申し訳ございません。が見つかりません。
名前が変更されたか、移動や削除が行われた可能性があります。
と出てしまうのは、なんでだろ?
Public Subだから?
50デフォルトの名無しさん (ワッチョイ 4bda-Fgt1)
2019/12/08(日) 21:02:19.63ID:m4NCsCKi0 教えて下さい。
役所のWeb公開している、DL済みxlsxファイルの「前回更新日時」を取得して
自book特定セルに落とそうと、Webを漁って以下のVBAを書いてみた。
※ なんでわざわざプロパティの「前回更新日時」を取得するのかというと
ただの「更新日時」では、自分がDLした日時になってしまうから。
Public Sub LastSaveTime()
With CreateObject("Excel.Application")
.Visible = False
With .Workbooks.Open(Cells(8, 1).Value)
Cells(8, 2).Value = .BuiltinDocumentProperties("Last save time").Value
End With
.Quit
End With
End Sub
これ自体は上手くいくんだけど、
目的のファイルのフルパスが入力済みの、
Cell(8,1).Value の(8, 1)=A8セルを
定義された名前に置き換えたい。
Worksheet上で普通に
$A$8 = R_TargetFullPath
と名前を定義して
VBA上で
With .Workbooks.Open(R_TargetFullPath)
としたら
実行時エラー '1004':
申し訳ございません。が見つかりません。
名前が変更されたか、移動や削除が行われた可能性があります。
と中途半端なエラーが出てしまうのは、なんでだろ?
Public Subだから?
役所のWeb公開している、DL済みxlsxファイルの「前回更新日時」を取得して
自book特定セルに落とそうと、Webを漁って以下のVBAを書いてみた。
※ なんでわざわざプロパティの「前回更新日時」を取得するのかというと
ただの「更新日時」では、自分がDLした日時になってしまうから。
Public Sub LastSaveTime()
With CreateObject("Excel.Application")
.Visible = False
With .Workbooks.Open(Cells(8, 1).Value)
Cells(8, 2).Value = .BuiltinDocumentProperties("Last save time").Value
End With
.Quit
End With
End Sub
これ自体は上手くいくんだけど、
目的のファイルのフルパスが入力済みの、
Cell(8,1).Value の(8, 1)=A8セルを
定義された名前に置き換えたい。
Worksheet上で普通に
$A$8 = R_TargetFullPath
と名前を定義して
VBA上で
With .Workbooks.Open(R_TargetFullPath)
としたら
実行時エラー '1004':
申し訳ございません。が見つかりません。
名前が変更されたか、移動や削除が行われた可能性があります。
と中途半端なエラーが出てしまうのは、なんでだろ?
Public Subだから?
51デフォルトの名無しさん (ワッチョイ 4bda-Fgt1)
2019/12/08(日) 21:04:30.92ID:m4NCsCKi052デフォルトの名無しさん (ワッチョイ 4d7c-TCJi)
2019/12/08(日) 21:11:35.36ID:uIaXKQtl0 >>50
Range(名前).Value
Range(名前).Value
53デフォルトの名無しさん (ワッチョイ 4bda-Fgt1)
2019/12/08(日) 21:38:38.38ID:m4NCsCKi054デフォルトの名無しさん (ワッチョイ 7501-cb5P)
2019/12/08(日) 22:06:19.10ID:ick2zDgR0 yokokara
55デフォルトの名無しさん (アークセー Sxc1-8b9E)
2019/12/08(日) 22:10:45.88ID:qsJQUXNgx56デフォルトの名無しさん (ワッチョイ 4d7c-TCJi)
2019/12/08(日) 22:49:12.52ID:uIaXKQtl0 >>53
Rangeにブックやシートの指定してる?
Rangeにブックやシートの指定してる?
57デフォルトの名無しさん (ワッチョイ ddda-zAlO)
2019/12/08(日) 23:01:44.63ID:gCiRV9kE0 MsgBox R_TargetFullPath
で何が表示されるか見てみたら?
で何が表示されるか見てみたら?
58デフォルトの名無しさん (ワッチョイ 4bda-Fgt1)
2019/12/08(日) 23:04:27.84ID:m4NCsCKi0 >>55
ありがとう。
フォルダパスも名前を定義しているんだけど、
まずはその定義名を使わず、以下でやってみた。
With .Workbooks.Open(R_TargetFullPath)
↓
With .Workbooks.Open(Range("E:\Excel研究\前回保存日時の取得\○○の場合\'Last save timeを得るVBA.xlsm'!R_TargetFilePath").Value)
コンパイルは通った。
で、立ち上げているのは自bookだけなのを確認して
マクロを実行した結果、
実行時エラー '1004':
'Range' メソッドは失敗しました: '_Global' オブジェクト
むぅ・・・
ありがとう。
フォルダパスも名前を定義しているんだけど、
まずはその定義名を使わず、以下でやってみた。
With .Workbooks.Open(R_TargetFullPath)
↓
With .Workbooks.Open(Range("E:\Excel研究\前回保存日時の取得\○○の場合\'Last save timeを得るVBA.xlsm'!R_TargetFilePath").Value)
コンパイルは通った。
で、立ち上げているのは自bookだけなのを確認して
マクロを実行した結果、
実行時エラー '1004':
'Range' メソッドは失敗しました: '_Global' オブジェクト
むぅ・・・
59デフォルトの名無しさん (ワッチョイ 4bda-Fgt1)
2019/12/08(日) 23:18:37.85ID:m4NCsCKi060デフォルトの名無しさん (ワッチョイ 0d8e-pptj)
2019/12/08(日) 23:23:11.19ID:zBnJIcph0 >>59
死ね
死ね
61デフォルトの名無しさん (ワッチョイ 4bda-Fgt1)
2019/12/08(日) 23:31:46.83ID:m4NCsCKi0 >>57
ありがとう。
目的のファイル指定は取りあえず置いといて
画面抑止のままのこの主旨でいいのかな?
Public Sub LastSaveTime2()
With CreateObject("Excel.Application")
.Visible = False
MsgBox R_TargetFullPath
End With
End Sub
で、MSGの結果は、中身がブランク。
ありがとう。
目的のファイル指定は取りあえず置いといて
画面抑止のままのこの主旨でいいのかな?
Public Sub LastSaveTime2()
With CreateObject("Excel.Application")
.Visible = False
MsgBox R_TargetFullPath
End With
End Sub
で、MSGの結果は、中身がブランク。
62デフォルトの名無しさん (ワッチョイ 4bda-Fgt1)
2019/12/08(日) 23:32:04.18ID:m4NCsCKi0 >>60
どうぞお幸せに。
どうぞお幸せに。
63デフォルトの名無しさん (ワッチョイ 4d7c-TCJi)
2019/12/08(日) 23:35:44.03ID:uIaXKQtl0 >>59
普通にシート指定すればよい
はっきり理解できてないのにブックもシートも指定せずセルを扱うなんて危険なことはやめた方がいい
ところでR_TargetFullPathはセル名と言ってなかったかな?
>Workbooks.Open(R_TargetFullPath)
これが通るってR_TargetFullPathの中にフルパスが入ってるとしか思えない
普通にシート指定すればよい
はっきり理解できてないのにブックもシートも指定せずセルを扱うなんて危険なことはやめた方がいい
ところでR_TargetFullPathはセル名と言ってなかったかな?
>Workbooks.Open(R_TargetFullPath)
これが通るってR_TargetFullPathの中にフルパスが入ってるとしか思えない
64デフォルトの名無しさん (ワッチョイ 4bda-Fgt1)
2019/12/08(日) 23:50:05.28ID:m4NCsCKi065デフォルトの名無しさん (ワッチョイ 4d7c-TCJi)
2019/12/09(月) 00:26:53.00ID:JYKNIWO60 >>64
シート指定とか調べず勘でやってるのか?
基本が無いのに勘で文法は書けないよ、知らないならちゃんと調べた方がいい
名前を定義とは、$A$8セルに「R_TargetFullPath」という名前を付けたと言ってる?
ちなみにVBAでR_TargetFullPathという名前の変数か定数作ったりしてない?
シート指定とか調べず勘でやってるのか?
基本が無いのに勘で文法は書けないよ、知らないならちゃんと調べた方がいい
名前を定義とは、$A$8セルに「R_TargetFullPath」という名前を付けたと言ってる?
ちなみにVBAでR_TargetFullPathという名前の変数か定数作ったりしてない?
66デフォルトの名無しさん (ワッチョイ 2359-VnuC)
2019/12/09(月) 00:28:16.96ID:s6MuVJyT0 R_TargetFullPathに何を入れたいのかもう一度よく考えてコードを見直せ
6750 (ワッチョイ 4bda-Fgt1)
2019/12/09(月) 18:07:53.39ID:Z8IKnDOY0 いろいろ考えてくれた皆さん、どうもありがとう。
自分の考えを上手く伝えられず、申し訳ない。
自分なりの考えで、確証は得られていないけど、
・"BuiltinDocumentProperties" を使った「前回更新日時」の取得は、対象ファイルをいちいち開かないと取得出来ないため、Public Subでやるしかない。
・が、Range(定義名)では、例えアクティブな自sheet内の定義名でもなぜか上手く取得出来ない。
・ただし、アクティブなセルをCells(行数, 列数)なら値取得が出来る。
ということかと。
ならば、「1つのファイルの日時を取得するのに定義名を使う」考え方を変えて、
・Cells(行数, 列数)を活かして、フォルダにDLした .xl* ファイルの、全ての前回更新日時を取得する。
としたら、出来た。
3つめの "Public Sub LastSaveTime3()" をボタンにマクロ登録
https://i.imgur.com/19QWsrZ.png
Power Queryで取得したフォルダ内.xl*ファイル一覧表(タイトルが黄緑色の列)の右列に
上記VBAで「前回更新日時」を取得した結果(タイトルが深緑色の列)
https://i.imgur.com/jegG0b5.png
自分の考えを上手く伝えられず、申し訳ない。
自分なりの考えで、確証は得られていないけど、
・"BuiltinDocumentProperties" を使った「前回更新日時」の取得は、対象ファイルをいちいち開かないと取得出来ないため、Public Subでやるしかない。
・が、Range(定義名)では、例えアクティブな自sheet内の定義名でもなぜか上手く取得出来ない。
・ただし、アクティブなセルをCells(行数, 列数)なら値取得が出来る。
ということかと。
ならば、「1つのファイルの日時を取得するのに定義名を使う」考え方を変えて、
・Cells(行数, 列数)を活かして、フォルダにDLした .xl* ファイルの、全ての前回更新日時を取得する。
としたら、出来た。
3つめの "Public Sub LastSaveTime3()" をボタンにマクロ登録
https://i.imgur.com/19QWsrZ.png
Power Queryで取得したフォルダ内.xl*ファイル一覧表(タイトルが黄緑色の列)の右列に
上記VBAで「前回更新日時」を取得した結果(タイトルが深緑色の列)
https://i.imgur.com/jegG0b5.png
68デフォルトの名無しさん (ワッチョイ 7501-cb5P)
2019/12/09(月) 19:47:30.76ID:FU5EvZBv0 ここには北海道のグラサンスーパーハゲザーこないのー?
69デフォルトの名無しさん (ワッチョイ 4d7c-TCJi)
2019/12/09(月) 20:06:58.60ID:JYKNIWO60 >>67
ブックとシートを指定せずにセルを指定してるから取得できないと何度…
指定してないからアクティブなシートを拾いに行く
アクティブなシートに名前の定義がなければ当然名前の定義を取得できるわけがない
ブックとシートを指定せずにセルを指定してるから取得できないと何度…
指定してないからアクティブなシートを拾いに行く
アクティブなシートに名前の定義がなければ当然名前の定義を取得できるわけがない
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 「偽サッチャー」「自滅的」「時代遅れ」 高市首相の経済政策を海外メディアが酷評 [蚤の市★]
- 高市首相の答弁書に「台湾有事答えない」と明記 存立危機発言当時 ★2 [蚤の市★]
- 【ド軍】山本由伸、WBC出場を決断!ドジャースが本人の意向を尊重、佐々木朗希はチームが故障歴を懸念で不参加 [鉄チーズ烏★]
- 米大統領報道官「日本と強固な同盟維持、中国とも協力」 [少考さん★]
- JA全農が「新おこめ券」…来年9月末の有効期限を新設、必要経費のみ上乗せ ★2 [蚤の市★]
- 秋田内陸縦貫鉄道「列車が脱線、転覆」と通報 北秋田市、萱草駅付近 [蚤の市★]
- 今年の漢字、きょう発表😉 [583597859]
- 女の子集合!
- 中国人、超ド正論。「チベットやウイグルに住んでるのはチベット族やウイグル族だが、アイヌから奪った土地に住んでる日本人こそ侵略者」 [314039747]
- 百合営業してるアイドル「これは営業だから…んっクチュクチュ」←これ
- 安倍さん死んでからの日本終わりだよ
- ひまでんぼ
