ExcelのVBAに関する質問スレです
コード書き込みや作成依頼もOK
※前スレ
Excel VBA 質問スレ Part56
http://mevius.5ch.net/test/read.cgi/tech/1534976724/
Excel VBA 質問スレ Part57
■ このスレッドは過去ログ倉庫に格納されています
2018/09/10(月) 21:42:39.57ID:K1uuwFLt
746デフォルトの名無しさん
2018/10/21(日) 21:55:52.80ID:Df7SvDdo 知恵遅れに毎日60以上ののVBA低レベ質問が恒常的に続くのは、商業科がExcelを教科に入れてるせいか?
VBA、大学教養のC課題、ネトゲーマーのUWSC自動化の三馬鹿うんざりトリオをなんとかして欲しい
VBA、大学教養のC課題、ネトゲーマーのUWSC自動化の三馬鹿うんざりトリオをなんとかして欲しい
747デフォルトの名無しさん
2018/10/21(日) 22:00:53.93ID:y1r4bkf6 無視したら
748デフォルトの名無しさん
2018/10/24(水) 20:08:02.64ID:VKzyLxGu どうせ半年後は.jsになってるんだし
749デフォルトの名無しさん
2018/10/24(水) 21:19:25.29ID:I9F6CV18 昔アセンブラやってたけど
今はアセンブラの知識なんて
まず糞の役にもたたない
悪いことは言わないから
IL止まりにしておいて
残りの時間を他の言語の学習に回した方がいい
今はアセンブラの知識なんて
まず糞の役にもたたない
悪いことは言わないから
IL止まりにしておいて
残りの時間を他の言語の学習に回した方がいい
750デフォルトの名無しさん
2018/10/24(水) 23:52:56.26ID:PFCPc8y/ VBAってWinAPI 使えるんだな
入力もエクセルのシート利用できるし使いがっていいなこれ
自分だけ使うものはこれで十分な気がしてきた
入力もエクセルのシート利用できるし使いがっていいなこれ
自分だけ使うものはこれで十分な気がしてきた
751デフォルトの名無しさん
2018/10/25(木) 00:03:26.58ID:lvTxqVIL 二次元配列に入力できるってかなり神がかってると思う
752デフォルトの名無しさん
2018/10/25(木) 08:52:35.61ID:VGA0KlB2 何を二次元配列に入力できる事が神がかってるの?
753デフォルトの名無しさん
2018/10/25(木) 09:32:39.27ID:r31i+JfI 人間が抽象化なしで無理なく扱えるデータは二次元の表までなのは確かだな
特別な技能を持たない人間の能力的限界がExcel
特別な技能を持たない人間の能力的限界がExcel
754デフォルトの名無しさん
2018/10/25(木) 11:20:28.64ID:Poeqy0yu 行(列)をベクトルだとみなすと何次元にでもなるでしょ
テンソル入れ物にするメリットってあるか?
レベル上がると有益になるのかな
テンソル入れ物にするメリットってあるか?
レベル上がると有益になるのかな
755デフォルトの名無しさん
2018/10/25(木) 18:41:01.78ID:lvTxqVIL >752
文字列と数値。ってかこれ以外セルには入れられないでしょ。オブジェクトは入れられないし
文字列と数値。ってかこれ以外セルには入れられないでしょ。オブジェクトは入れられないし
756デフォルトの名無しさん
2018/10/26(金) 00:13:09.54ID:Inq2or/E 何を〜に入力できる?
って質問に対して間違っちゃいないが...
って質問に対して間違っちゃいないが...
757デフォルトの名無しさん
2018/10/26(金) 01:08:48.00ID:SUBF4wRe758デフォルトの名無しさん
2018/10/26(金) 07:12:48.70ID:xKW3LLWl セルって単語が後出しだからこうなるんだよ
759デフォルトの名無しさん
2018/10/26(金) 08:36:50.37ID:QS/Z6hlA わかるなら聞くなよハゲども
なんでハゲてるか自問してろ
なんでハゲてるか自問してろ
760デフォルトの名無しさん
2018/10/26(金) 10:34:09.86ID:FHu9JUdN >>750
当然だがWinAPIだけじゃなくVB呼び出しに適う任意のAPIが呼べるから、自分だけの環境なら何だって可能
当然だがWinAPIだけじゃなくVB呼び出しに適う任意のAPIが呼べるから、自分だけの環境なら何だって可能
761デフォルトの名無しさん
2018/10/26(金) 10:45:47.31ID:REmVcuAB 解凍・圧縮用のdllであるunlha32やらunzip32なんかもちゃんと用意されていて、vbaから利用できるしな
762デフォルトの名無しさん
2018/10/26(金) 12:00:29.68ID:FHu9JUdN763デフォルトの名無しさん
2018/10/26(金) 13:41:39.22ID:FXq8Nzbn 「自分だけの環境」の話だろw
764デフォルトの名無しさん
2018/10/26(金) 20:18:33.42ID:7acxRmxq それ言い出すとシェル呼び出してそこから外部プログラムの実行でなんでもできるわな
765デフォルトの名無しさん
2018/10/27(土) 00:10:36.89ID:64tA3ZzD それだと最早Excel VBAを起点にする意味がないんだよなぁ
766デフォルトの名無しさん
2018/10/27(土) 09:39:45.10ID:z1SsyyeN 戻り値主体の関数的な使い方がしにくいのでは?
767デフォルトの名無しさん
2018/10/27(土) 12:17:32.77ID:nqyfF+/M なんで何でもできたら悪いみたいな言い方やねん
768デフォルトの名無しさん
2018/10/27(土) 15:13:38.94ID:gKMunlkh 彼女の作り方がわからない
769デフォルトの名無しさん
2018/10/27(土) 17:08:31.91ID:arx5iKp2 事務の女性をお得意のVBAで助けてやるんだ
770デフォルトの名無しさん
2018/10/27(土) 20:08:09.98ID:9XazvJsa 助けてあげても一瞬感謝されるだけで何も起こらないぞ
下手すると感謝すらされない
下手すると感謝すらされない
771デフォルトの名無しさん
2018/10/27(土) 21:27:07.52ID:EQmtOnig >>770
そう、気づかないんだよな・・・
そう、気づかないんだよな・・・
772デフォルトの名無しさん
2018/10/27(土) 23:46:47.86ID:bYiR1b6u 助けても後出しで本当はこうしたいのにできてないだの文句言われる
773デフォルトの名無しさん
2018/10/28(日) 06:55:12.79ID:xmv6f/Y+ 全然助けれとらんやんwプロさんあわれwww
774デフォルトの名無しさん
2018/10/28(日) 09:41:11.55ID:U+AZbxUR ちょっとしたことでいいからピンポイントで教えてあげる。
食いついてこなかったら諦める。
食いついてこなかったら諦める。
775デフォルトの名無しさん
2018/10/28(日) 10:40:54.72ID:o08My3f7 ExcelVBAで、女にもてるようになる方法スレ w
776デフォルトの名無しさん
2018/10/28(日) 11:02:16.86ID:eT9vyE0h ランダムアクセスファイルでデータ管理をしています。
いままで動いていたものが GET PUT で 「レコード長が一致しない」となります。
一部こんな感じです。
Const MONTH_SIZE As Long = 60
Type M_Rec
S_code As Long
Stock As Long
byCode As String * 8
M_id_Cre(MONTH_SIZE) As Integer
End Type
Public S_MAIN_REC As M_Rec
Open FileName For Random As #SmainNO Len = Len(S_MAIN_REC)
Get #SmainNO, indexNo, S_MAIN_REC
この標準モジュールを破棄して同じモジュールをインポートすると
正常に動きますがワークブックを保存して再起動し同じ処理をすると
エラーになります。
Public S_MAIN_REC As M_Rec の 記述場所を移動させると正常に
動きましたがモジュール内に新規プロシージャを追加したらまた
エラーが出るようになりました。
モジュールが壊れていると思い新しく作成しても同じでした。
ご意見お願いします。
現在ユーザ定義 の M_id_Cre(MONTH_SIZE) As Integer の配列を
61に変更し正常動作中です。
いままで動いていたものが GET PUT で 「レコード長が一致しない」となります。
一部こんな感じです。
Const MONTH_SIZE As Long = 60
Type M_Rec
S_code As Long
Stock As Long
byCode As String * 8
M_id_Cre(MONTH_SIZE) As Integer
End Type
Public S_MAIN_REC As M_Rec
Open FileName For Random As #SmainNO Len = Len(S_MAIN_REC)
Get #SmainNO, indexNo, S_MAIN_REC
この標準モジュールを破棄して同じモジュールをインポートすると
正常に動きますがワークブックを保存して再起動し同じ処理をすると
エラーになります。
Public S_MAIN_REC As M_Rec の 記述場所を移動させると正常に
動きましたがモジュール内に新規プロシージャを追加したらまた
エラーが出るようになりました。
モジュールが壊れていると思い新しく作成しても同じでした。
ご意見お願いします。
現在ユーザ定義 の M_id_Cre(MONTH_SIZE) As Integer の配列を
61に変更し正常動作中です。
777デフォルトの名無しさん
2018/10/28(日) 11:41:59.08ID:THaxkhg7 さすがに時代遅れにも程がある
そんな黴の生えたゴミカスは今すぐ捨てて普通にワークシートで管理するかDBにしろ
そんな黴の生えたゴミカスは今すぐ捨てて普通にワークシートで管理するかDBにしろ
778デフォルトの名無しさん
2018/10/28(日) 15:41:48.78ID:9UvKiQNH 言い過ぎ。しかしランダムアクセスファイルとは懐かしい
779776
2018/10/28(日) 16:59:37.36ID:eT9vyE0h すみません
もともとはワークシートで管理していたのですがファイルのほうが
都合が良いので変更しました。
もともとはワークシートで管理していたのですがファイルのほうが
都合が良いので変更しました。
780デフォルトの名無しさん
2018/10/28(日) 17:01:07.70ID:ISWax1Kh で、今まさにその前提が間違っていたことが判明したんだろ?
直ちに戻しなさい
直ちに戻しなさい
781デフォルトの名無しさん
2018/10/28(日) 20:08:41.54ID:4pkRNiip 馬鹿の特徴
動きません
エラーが起きます
決して具体的なエラーメッセージを書かない
動きません
エラーが起きます
決して具体的なエラーメッセージを書かない
782デフォルトの名無しさん
2018/10/28(日) 21:40:15.40ID:uzLWPyey バカの特徴
書いてあるエラーメッセージを理解できずに自爆 w
> GET PUT で 「レコード長が一致しない」となります。
書いてあるエラーメッセージを理解できずに自爆 w
> GET PUT で 「レコード長が一致しない」となります。
783デフォルトの名無しさん
2018/10/28(日) 23:30:32.75ID:9UvKiQNH ここの住人回答者は居丈高だからteratailにでも質問なさい。
ただコード具体例とエラー詳細はいずれにせよ求められるけど
ただコード具体例とエラー詳細はいずれにせよ求められるけど
784デフォルトの名無しさん
2018/10/29(月) 00:30:55.69ID:4Xu2UR6y >>782
馬鹿は表面的なことしか見えない
馬鹿は表面的なことしか見えない
785デフォルトの名無しさん
2018/10/29(月) 04:51:38.42ID:xpZzwKyb >>784
表面的なことすら見えてないバカの自爆乙 w
表面的なことすら見えてないバカの自爆乙 w
786デフォルトの名無しさん
2018/10/29(月) 09:45:00.02ID:uMisuGYK 初心者には環境とかエラーの詳細な条件を明記することへの心理的な障壁があります
その心理の正体は一体何でしょう?
その心理の正体は一体何でしょう?
787デフォルトの名無しさん
2018/10/29(月) 10:53:33.28ID:VYDzXbvz 慣れの問題かと
・自信ないのでミス指摘されたくないなどの自尊心問題
・コンプライアンスリスクとの取り違え
・個人情報リスクとの取り違え
・自信ないのでミス指摘されたくないなどの自尊心問題
・コンプライアンスリスクとの取り違え
・個人情報リスクとの取り違え
788776
2018/10/29(月) 11:24:48.23ID:aqnyYxuj 少し荒れてしまいましたね、すみません
エラーは書いてあるとおり「レコード長が一致しない」
Openステートメントで指定された長さと異なるということなのですが
レコード変数やOpen Get Putのプロシージャなど変更せずに
このエラーが発生しました。多分VBAのバグだと思うのですが
詳しい方に教えていただきたく思いまして書き込みしました。
タイミングが悪かったですね。
エラーは書いてあるとおり「レコード長が一致しない」
Openステートメントで指定された長さと異なるということなのですが
レコード変数やOpen Get Putのプロシージャなど変更せずに
このエラーが発生しました。多分VBAのバグだと思うのですが
詳しい方に教えていただきたく思いまして書き込みしました。
タイミングが悪かったですね。
789デフォルトの名無しさん
2018/10/29(月) 11:33:02.57ID:f3zS/Ojj 確かにタイミングが悪かったな
20年遅いわ
今回お前が苦労して解決しても後で他の誰にも分からないんだぞ?
そんなもん押し付けられる方の身にもなってみろ
20年遅いわ
今回お前が苦労して解決しても後で他の誰にも分からないんだぞ?
そんなもん押し付けられる方の身にもなってみろ
790デフォルトの名無しさん
2018/10/29(月) 11:45:30.06ID:uMisuGYK 「VBA ファイル読み書き」で検索してOpen コマンドとかが出てくるものかねえ
791デフォルトの名無しさん
2018/10/29(月) 11:48:12.61ID:VYDzXbvz ?出てくるぞ?あたりまえだろ
792デフォルトの名無しさん
2018/10/29(月) 14:25:31.25ID:gsxtgvfG >多分VBAのバグだと思うのですが
まぁ言語の方に責任を押し付けたくなるのは判るがなw
まぁ言語の方に責任を押し付けたくなるのは判るがなw
793デフォルトの名無しさん
2018/10/29(月) 15:23:05.64ID:P7hlr/PN 何わろとんねん
794デフォルトの名無しさん
2018/10/29(月) 16:45:28.78ID:gkooAort >>788
バイナリエディターでレコードファイルを確認するのと、テスト環境作ってレコードを減らしても発生するかみる
バイナリエディターでレコードファイルを確認するのと、テスト環境作ってレコードを減らしても発生するかみる
795デフォルトの名無しさん
2018/10/29(月) 18:06:20.39ID:P7hlr/PN >>794
頼む
頼む
796776
2018/10/29(月) 19:56:48.16ID:aqnyYxuj >>794
エラーになる状態ですと、新規にファイルを作成しても1レコード目でエラーとなりますので
ファイルがおかしいとは思えません。ユーザー定義のレコードサイズ、モジュール変数の
メモリ設定があやしいと思うのですが。
エラーになる状態ですと、新規にファイルを作成しても1レコード目でエラーとなりますので
ファイルがおかしいとは思えません。ユーザー定義のレコードサイズ、モジュール変数の
メモリ設定があやしいと思うのですが。
797デフォルトの名無しさん
2018/10/29(月) 23:29:14.96ID:cO8xV5Br 素人質問ですみません
エクセルで消費税を算出したいのですが、一つのセル内で完結できないでしょうか
ググっても税抜き価格と税込み価格の、二つのセルを使うものばかりでして
エクセルで消費税を算出したいのですが、一つのセル内で完結できないでしょうか
ググっても税抜き価格と税込み価格の、二つのセルを使うものばかりでして
798デフォルトの名無しさん
2018/10/29(月) 23:52:48.29ID:g/o5tBon799デフォルトの名無しさん
2018/10/30(火) 00:03:25.38ID:oqjX6NBU >>796
最小条件での動作確認しないなら俺はなにもいわない
最小条件での動作確認しないなら俺はなにもいわない
800デフォルトの名無しさん
2018/10/30(火) 00:10:19.82ID:iPJEDoz1 >>797
それVBAの質問なの?そもそも
それVBAの質問なの?そもそも
801デフォルトの名無しさん
2018/10/30(火) 12:34:46.04ID:MiaEkZFI >>797
税抜き価格を入力したら、そのセルの数値を自動的に1.08倍するマクロ
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
Target.Value = Int(Target.Value * 1.08)
Application.EnableEvents = True
End Sub
税抜き価格を入力したら、そのセルの数値を自動的に1.08倍するマクロ
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
Target.Value = Int(Target.Value * 1.08)
Application.EnableEvents = True
End Sub
802デフォルトの名無しさん
2018/10/30(火) 13:48:04.01ID:Zs94iKwt 際限なく1.08倍していきます
803デフォルトの名無しさん
2018/10/30(火) 17:38:32.50ID:D9hLQP5r 消費税は際限なく上がる
804デフォルトの名無しさん
2018/10/30(火) 18:40:58.23ID:bEYZFX0T くだらない質問だと思いますが、会社のバーコードで在庫 納品書 委託 委託精算 等 連携したものを作成する場合は初心者でどのくらい作成期間がかかるものでしょうか?
805デフォルトの名無しさん
2018/10/30(火) 18:50:13.80ID:aaXb5tV1 100年くらい見積もっておけば間違いない
806デフォルトの名無しさん
2018/10/30(火) 18:53:25.90ID:E+8/TrgC 少なくとも、SIerに委託するより>>804の給料の方が遥かに高くつくくらいの期間は間違いなくかかるよ
807デフォルトの名無しさん
2018/10/30(火) 19:15:41.01ID:bEYZFX0T >>806
因みに幾らくらいかかるものでしょうか?
因みに幾らくらいかかるものでしょうか?
808デフォルトの名無しさん
2018/10/30(火) 19:49:51.22ID:wPm+kt3H809デフォルトの名無しさん
2018/10/30(火) 20:01:06.67ID:UXC/r+zj テーブル(lo)を列毎に配列で取り出して処理したいのですが、キーを列名、値に列範囲を格納すればforループで代入できて簡潔なのでDictionaryを使ってみようと思っています。
Dim dic As Dictionary: Set dic = New Dictionary
Dim lc As ListColumn
For Each lc In lo.ListColumns
_dic.add lc.name, WorksheetFunction.Transpose(lc.DataBodyRange.value)
next lc
以上で作成した「Dictionaryの値」に格納した「配列の値」に代入が出来ません。
例えば
debug.print dic(見出しA)(1) '「ピカチュウ」が表示
dic(見出しA)(1) = "ライチュウ"
debug.print dic(見出しA)(1) '「ピカチュウ」が表示
となってしまいます。しかし以下の様に配列を格納し直すと反映されます。
debug.print dic(見出しA)(1) '「ピカチュウ」が表示
dic(見出しA) = Array("","ライチュウ", dic(見出しA)(2),・・・
debug.print dic(見出しA)(1) '「ライチュウ」が表示
修正があるたびに配列を代入し直すのは面倒なので出来れば値を直接書き換えたいのですが、どうすればいいのでしょうか。
Dim dic As Dictionary: Set dic = New Dictionary
Dim lc As ListColumn
For Each lc In lo.ListColumns
_dic.add lc.name, WorksheetFunction.Transpose(lc.DataBodyRange.value)
next lc
以上で作成した「Dictionaryの値」に格納した「配列の値」に代入が出来ません。
例えば
debug.print dic(見出しA)(1) '「ピカチュウ」が表示
dic(見出しA)(1) = "ライチュウ"
debug.print dic(見出しA)(1) '「ピカチュウ」が表示
となってしまいます。しかし以下の様に配列を格納し直すと反映されます。
debug.print dic(見出しA)(1) '「ピカチュウ」が表示
dic(見出しA) = Array("","ライチュウ", dic(見出しA)(2),・・・
debug.print dic(見出しA)(1) '「ライチュウ」が表示
修正があるたびに配列を代入し直すのは面倒なので出来れば値を直接書き換えたいのですが、どうすればいいのでしょうか。
810デフォルトの名無しさん
2018/10/30(火) 20:25:09.48ID:4tQqoM/4 >>809
そもそもlo.ListColumns(lc.Name).Range.Item(Index).Value でテーブル内のセル値のセッターにアクセス出来るので、わざわざそんなことをやる必要がないと思う
仕様上ListObjectは列名重複が許されないし、ListColumnsコレクション自体がDictionaryと殆ど等価のハッシュテーブルになる
そもそもlo.ListColumns(lc.Name).Range.Item(Index).Value でテーブル内のセル値のセッターにアクセス出来るので、わざわざそんなことをやる必要がないと思う
仕様上ListObjectは列名重複が許されないし、ListColumnsコレクション自体がDictionaryと殆ど等価のハッシュテーブルになる
811デフォルトの名無しさん
2018/10/30(火) 20:50:28.74ID:UXC/r+zj ありがとうございます
現在はそうしているのですが(元々それがやりたくて全部テーブルに置き換えたのですが)
値を取り出すときに毎回ListColumns(lc.Name).DataBodyRange(Index).Valueと長々書く為コードが読みづらいのと、配列にすればちょっと速度改善が見込めるかなと思って試していました。
現在はそうしているのですが(元々それがやりたくて全部テーブルに置き換えたのですが)
値を取り出すときに毎回ListColumns(lc.Name).DataBodyRange(Index).Valueと長々書く為コードが読みづらいのと、配列にすればちょっと速度改善が見込めるかなと思って試していました。
812デフォルトの名無しさん
2018/10/31(水) 13:51:41.06ID:OKzw5dxl Dictionaryの代替以外の回答もお待ちしてます。
あと追加で質問なのですが、先ほどのTransposeの様にワークシート関数を利用するなら配列ではなくセル範囲の方が速いという記事を見つけました。
どういう原因でそうなるのでしょうか?
あと追加で質問なのですが、先ほどのTransposeの様にワークシート関数を利用するなら配列ではなくセル範囲の方が速いという記事を見つけました。
どういう原因でそうなるのでしょうか?
813デフォルトの名無しさん
2018/10/31(水) 17:54:26.42ID:Dz4usJiG 一般的にユーザーによる同等のVBAコードよりワークシート関数の方が速い
C#とかよりC++ネイティブの方が数〜倍速くなるのと同じ
C#とかよりC++ネイティブの方が数〜倍速くなるのと同じ
814デフォルトの名無しさん
2018/10/31(水) 18:27:27.91ID:b54HYVzl815デフォルトの名無しさん
2018/10/31(水) 18:30:36.22ID:b54HYVzl816デフォルトの名無しさん
2018/11/01(木) 07:11:29.46ID:hEMz+97b シートにボタン配置して押したら、オートシェイプの直線を引ける段階までって出来る?いわゆるショートカットキー的な感じの。
実際に直線を引いちゃうのは山ほどネットに転がってるけど、引くのは任意でやりたい。
実際に直線を引いちゃうのは山ほどネットに転がってるけど、引くのは任意でやりたい。
817デフォルトの名無しさん
2018/11/01(木) 10:46:24.36ID:Uh6mdsZK >>816
出来ない。
出来ない。
818デフォルトの名無しさん
2018/11/01(木) 18:36:00.35ID:Nl3jEz8g Excelのセルに入ってるデータを使ってOutlookでメールをVBAで書きたいのですが
それぞれの行やある文字についてフォントや色などで装飾したいんです。
そんなことはできますか?
なんかできなそうなんですが。
でもこれをしないとものすごく不便なのです。
うまくいけば残業せずに遊びながら居残りしてお金だけはたくさんもらえるのですが・・・
それぞれの行やある文字についてフォントや色などで装飾したいんです。
そんなことはできますか?
なんかできなそうなんですが。
でもこれをしないとものすごく不便なのです。
うまくいけば残業せずに遊びながら居残りしてお金だけはたくさんもらえるのですが・・・
819デフォルトの名無しさん
2018/11/01(木) 18:51:35.86ID:4wthv7uM >>816
できるよ。
できるよ。
820デフォルトの名無しさん
2018/11/01(木) 19:09:06.19ID:Nl3jEz8g821デフォルトの名無しさん
2018/11/01(木) 19:13:58.18ID:9hAL4zo4822デフォルトの名無しさん
2018/11/01(木) 19:18:10.81ID:Nl3jEz8g >>821
ボタンを挿入して右クリックしてマクロの登録を選び実行させたいプロシージャを選ぶだけ
ボタンを挿入して右クリックしてマクロの登録を選び実行させたいプロシージャを選ぶだけ
823デフォルトの名無しさん
2018/11/01(木) 19:22:20.09ID:9hAL4zo4 >>822
直線を引く直前の状態にするプロシージャって簡単に書けるのかい?
直線を引く直前の状態にするプロシージャって簡単に書けるのかい?
824デフォルトの名無しさん
2018/11/01(木) 19:24:41.75ID:9hAL4zo4825デフォルトの名無しさん
2018/11/01(木) 19:26:55.17ID:1Z/ZXoar >>818
HTML書けるならこの辺りを見ればわかるだろ
https://docs.microsoft.com/en-us/office/vba/api/outlook.mailitem.bodyformat
HTML書けるならこの辺りを見ればわかるだろ
https://docs.microsoft.com/en-us/office/vba/api/outlook.mailitem.bodyformat
826デフォルトの名無しさん
2018/11/01(木) 19:30:44.64ID:Nl3jEz8g827デフォルトの名無しさん
2018/11/01(木) 19:33:37.59ID:Nl3jEz8g828デフォルトの名無しさん
2018/11/01(木) 23:23:17.57ID:EZF4jYAF >>820
できないから聞いたんだが?
できないから聞いたんだが?
829デフォルトの名無しさん
2018/11/01(木) 23:35:45.63ID:NdKTTFxC できるって言ってる人は質問をよく理解してないんだと思う
830デフォルトの名無しさん
2018/11/01(木) 23:45:47.15ID:BwvtJmQs この板は日本語が読めない低学歴知恵遅れが多いのはあってる
えてして書いてある要件とまったく違うもんをあげてくるよくいる軽い池沼入ってるのと似てる
えてして書いてある要件とまったく違うもんをあげてくるよくいる軽い池沼入ってるのと似てる
831デフォルトの名無しさん
2018/11/01(木) 23:59:15.18ID:8GU0aFYB お互い様
832デフォルトの名無しさん
2018/11/02(金) 00:46:25.82ID:iMC20ra8833デフォルトの名無しさん
2018/11/02(金) 06:47:30.99ID:Cpir13NG Sendkeysで無理くりリボンメニューの直線を選択するコードを作ってショートカット割り当てる位しかないと思う
834デフォルトの名無しさん
2018/11/02(金) 07:54:22.50ID:EKeu1zQN >>828
あなたはサル以下ということだ。ウイッキー。
あなたはサル以下ということだ。ウイッキー。
835デフォルトの名無しさん
2018/11/02(金) 10:00:17.95ID:IpqW30ow >>816
あれ? まだコードあがってないですね。
じゃぁExcel2010用ですが、サンプルを、、、
目的に合わせてShapeIDを変えてください。
Sub CreateShape()
Dim ShpID As Long ' ShapetypeID
Dim iShpCnt As Long ' Shape Count (追加待ち判定)
Dim SHP As Variant ' Loop用Shape
' Create Shape
'--------------------------------
ShpID = 409 'Freeformの場合
' ShpID = 1119 'Ovalの場合
' ShpID = 1042 'LineConnectorの場合
iShpCnt = ActiveSheet.Shapes.Count
Application.CommandBars.FindControl(ID:=ShpID).Execute
Do
DoEvents
Loop While iShpCnt = ActiveSheet.Shapes.Count
End Sub
描かずに連続で押すと処理が入れ子になってしまうのが
難点ですが、、、
あれ? まだコードあがってないですね。
じゃぁExcel2010用ですが、サンプルを、、、
目的に合わせてShapeIDを変えてください。
Sub CreateShape()
Dim ShpID As Long ' ShapetypeID
Dim iShpCnt As Long ' Shape Count (追加待ち判定)
Dim SHP As Variant ' Loop用Shape
' Create Shape
'--------------------------------
ShpID = 409 'Freeformの場合
' ShpID = 1119 'Ovalの場合
' ShpID = 1042 'LineConnectorの場合
iShpCnt = ActiveSheet.Shapes.Count
Application.CommandBars.FindControl(ID:=ShpID).Execute
Do
DoEvents
Loop While iShpCnt = ActiveSheet.Shapes.Count
End Sub
描かずに連続で押すと処理が入れ子になってしまうのが
難点ですが、、、
836デフォルトの名無しさん
2018/11/02(金) 10:56:22.32ID:N4XXlewl >>835
なるほど
なるほど
837デフォルトの名無しさん
2018/11/02(金) 12:39:25.94ID:ouVO3wBC >>835
できた!ありがとうございます!
できた!ありがとうございます!
838デフォルトの名無しさん
2018/11/02(金) 12:40:29.21ID:m6WMCehM >>835
これで出来たんだね。
コード書ける環境じゃ無いから試せなかったけど、この方法かUIAutomation使うかどちらかかなあと思ってた。
CommandBarControl.ExecuteでもShapeの場合トグルっぱい動作だから思う状態になるか自信が無かった。
これで出来たんだね。
コード書ける環境じゃ無いから試せなかったけど、この方法かUIAutomation使うかどちらかかなあと思ってた。
CommandBarControl.ExecuteでもShapeの場合トグルっぱい動作だから思う状態になるか自信が無かった。
839デフォルトの名無しさん
2018/11/02(金) 12:44:20.35ID:m6WMCehM あれ、Do〜Loopの処理は気付かんかったなあ。
自分が作成してたら動かんかったと結論出してたかも。
自分が作成してたら動かんかったと結論出してたかも。
840デフォルトの名無しさん
2018/11/02(金) 12:50:59.79ID:IpqW30ow841デフォルトの名無しさん
2018/11/02(金) 12:57:46.92ID:IpqW30ow842デフォルトの名無しさん
2018/11/02(金) 17:17:11.16ID:ouVO3wBC ちなみになんだけどDoLoopはなんの為にあるんですかね?
なくても同じ動きすんだけど。
なくても同じ動きすんだけど。
843デフォルトの名無しさん
2018/11/02(金) 17:57:06.50ID:oqBXcCoW 書き終わってShapeオブジェクトが作成されるまで、次の処理を待機
元々書いた後に何か処理をするプログラムの一部だったんだと思う
今回はCommandBarControlのコマンドが実行された時点で仕事は終わってるから要らないかと
元々書いた後に何か処理をするプログラムの一部だったんだと思う
今回はCommandBarControlのコマンドが実行された時点で仕事は終わってるから要らないかと
844デフォルトの名無しさん
2018/11/02(金) 18:54:32.40ID:m6WMCehM >>843
ループ無くても動くんなら思った通りだった。
違いが有るとすれば自分はFindControlは使わず、コントロールの指定もIDじゃなくて名前使う所。
名前はFor Each使ってCommandBarを列挙して名前をDebug.Print、そのCommandBarに対してFor EachでCommandBarControlを列挙して名前をDebug.Printなどで調べる。
ループ無くても動くんなら思った通りだった。
違いが有るとすれば自分はFindControlは使わず、コントロールの指定もIDじゃなくて名前使う所。
名前はFor Each使ってCommandBarを列挙して名前をDebug.Print、そのCommandBarに対してFor EachでCommandBarControlを列挙して名前をDebug.Printなどで調べる。
845デフォルトの名無しさん
2018/11/02(金) 19:49:18.45ID:IpqW30ow >>842
ん? Do - Loop 部分ないとちゃんと動かんよ?
VBEから実行してない?
ボタンに割り付けると、ボタン押した瞬間に十時カーソル消えるはず。
Excel2010より新しいVersionは動きが違うの?
ん? Do - Loop 部分ないとちゃんと動かんよ?
VBEから実行してない?
ボタンに割り付けると、ボタン押した瞬間に十時カーソル消えるはず。
Excel2010より新しいVersionは動きが違うの?
■ このスレッドは過去ログ倉庫に格納されています
