[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2ch.scのread.cgiへ]
Update time : 12/29 06:14 / Filesize : 265 KB / Number-of Response : 993
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Excel VBA 質問スレ Part77



1 名前:デフォルトの名無しさん mailto:sage [2022/07/17(日) 07:07:35.59 ID:tS4zKdphH.net]
!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512
↑同じ内容を3行貼り付けること

ExcelのVBAに関する質問スレ
コード書き込みや作成依頼もOK

次スレは>>980が立てること
無理なら細かく安価指定

※前スレ
Excel VBA 質問スレ Part76
https://mevius.5ch.net/test/read.cgi/tech/1651339421/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured

718 名前:デフォルトの名無しさん (アウアウウー Sa5b-8eP5) [[ここ壊れてます] .net]
なぜ競プロではVBAの出番が無いのか

719 名前:デフォルトの名無しさん mailto:sage [2022/09/22(木) 11:36:03.90 ID:V4zanZlpM.net]
遅いとか記述が冗長とかサーバーサイドで動かせないとかテクニカルな問題はいくらでもあるけど、
最大の理由は競プロやるような人はVBAなんか使いたがらないから

720 名前:デフォルトの名無しさん mailto:sage [2022/09/22(木) 18:38:55.33 ID:+Wi4osLB0.net]
>>718
年末のAdvent of CodeはVBAだかExcelだけかでやってる人たまにいる

721 名前:デフォルトの名無しさん (ワッチョイ 97da-rZTD) mailto:sage [[ここ壊れてます] .net]
>>666
いいえて妙、ワロタw

722 名前:デフォルトの名無しさん mailto:sage [2022/09/23(金) 19:12:26.46 ID:27USMHor0.net]
外注ってやっぱ高い?

723 名前:デフォルトの名無しさん mailto:sage [2022/09/24(土) 01:17:31.15 ID:mU6CwKwa0.net]
素人にやらせると、見かけは安上がりだけど結果的に高く付くことが多い

724 名前:デフォルトの名無しさん [2022/09/24(土) 03:39:42.11 ID:sis0YFKKa.net]
何人で何ヵ月かかるかで金額が変わる

725 名前:デフォルトの名無しさん mailto:sage [2022/09/24(土) 04:49:54.00 ID:rKbJBgHg0.net]
じゃあここのスレの方ならプロだから安心して頼むそうかな??
金額以外は

726 名前:デフォルトの名無しさん [2022/09/24(土) 05:51:09.21 ID:Bbc/0kyt0.net]
RubyはそれだけではDBとなるものを持ってないからEXCELやACCESSのVBAとは比較できない。

もっとも、同様にDBを持たない言語と比較するなら
セーフティーでガベージコレクションの概念がなくスピードの速いRust辺りと比べるとゴミ同然



727 名前:デフォルトの名無しさん (ワッチョイ c23d-dJZP) mailto:sage [[ここ壊れてます] .net]
エクスプローラーでフォルダーのプロパティを開いて
カスタマイズタブのところに「フォルダーの種類」が全般とかビデオとかになってるけど。
これをVBA/VBSで変更できる?
フォルダーのtypeを見ても全部「ファイル フォルダー」になる。

728 名前:デフォルトの名無しさん mailto:sage [2022/09/24(土) 09:33:48.67 ID:DeEi7HC40.net]
>>727
レジストリ操作でやりたいことができたわ。

729 名前:デフォルトの名無しさん mailto:sage [2022/09/24(土) 14:15:19.28 ID:qbD2jrks0.net]
お、おう、よかったな

730 名前:デフォルトの名無しさん [2022/09/25(日) 05:30:19.65 ID:/q7OsFL50.net]
一般ユーザがある列のセルを編集できないようにしたい。
でも、VBAの実行や、セル関数の結果は反映させたい。

https://support.microsoft.com/ja-jp/office/excel-%E3%81%A7%E3%82%BB%E3%83%AB%E3%82%92%E3%83%AD%E3%83%83%E3%82%AF%E3%81%99%E3%82%8B-b942fe92-5e87-0985-214b-9617b5b6d53f
↑セルのロック
という機能で試してみたがVBAマクロでの変更は許されなくてちょっと困っています。

セルに対してマウスイベントを発生させない。みたいなことを考えて、調べているが。
皆さんも悩まれる案件かと思います。もっと良い方法ないでしょうか?

731 名前:デフォルトの名無しさん [2022/09/25(日) 06:18:07.93 ID:jaItMug30.net]
VBAん中でロック解除して
処理終了間際にロックし直しってんじゃだめなの?

732 名前:デフォルトの名無しさん mailto:sage [2022/09/25(日) 07:44:30.90 ID:dPa0+M2C0.net]
SheetSelectionイベントとIntersect使うだけでは

733 名前:デフォルトの名無しさん mailto:sage [2022/09/25(日) 09:13:59.54 ID:nIE2ah490.net]
お願いします。
検索をシートからではなくブックからをデフォルトにしたいです。
下記のサイトのコードを使い検索は出来るのですが、
結果表示ではなく( '<全てのシートの検索が終わったら、結果を表示します。> )、
検索値まで移動するにはどのようにコードを書けばいいか、ご教授願います。。
https://www.moug.net/tech/exvba/0040005.html

734 名前:デフォルトの名無しさん mailto:sage [2022/09/25(日) 10:44:33.52 ID:mk9vdghN0.net]
>>730
worksheet_boforedoubleclick みたいなイベントプロシージャでできる

735 名前:デフォルトの名無しさん mailto:sage [2022/09/25(日) 10:58:13.51 ID:/q7OsFL50.net]
ありがとうございました。
>>731の方法で簡単にできました。
VBA実行時に保護を解除して、終了時に再度保護をかけることで、
すんなりといけました。

736 名前:デフォルトの名無しさん [2022/09/28(水) 13:31:05.50 ID:/kKDTdjO0.net]
A1:10もしくはA100に入力された値を配列に格納しています。
動的配列です。
Select Case 文字列A
case A1:A100のどれかに一致するなら
case B1:B100のどれかに一致するなら

みたいな書き方って出来ないのでしょうか?



737 名前:デフォルトの名無しさん mailto:sage [2022/09/28(水) 13:35:10.17 ID:Rj0JQSes0.net]
ifで条件書けよ

738 名前:デフォルトの名無しさん [2022/09/28(水) 15:15:27.03 ID:n6LgYqsE0.net]
>>736
恐らく出来ない。
ただ、Select Case の後の文字列の部分をTrueとして、
A10:A100の中に該当文字列が有った場合、
Trueを返す関数を作成して、Case文の後ろに記載して
その条件に当たったかを判別して、Case文の下に
その条件下での処理を記載することは可能。

Caseにある条件のA10:A100にとある文字列が
有った場合とB10:B100にとある文字列が
有った場合と下に続く処理が同じなら、
先程言った関数の引数に対象範囲と検索対象文字列を
持たせておけばCase文を使う必要すら無い。
戻り値がTrueかFalseかをIf文で判断すれば良い。

その辺は実際の状況に合わせて上手く作ってくれ。

739 名前:デフォルトの名無しさん mailto:sage [2022/09/28(水) 16:15:51.79 ID:vR69ytL90.net]
select caseにtrue??
知らなかったわ何それ??

740 名前:デフォルトの名無しさん mailto:sage [2022/09/28(水) 18:26:27.19 ID:Pxqx/4k10.net]
Do
With
End With
Loop

よりも

With
Do
Loop
End With

の方が計算が早い(PCにとっては楽)と考えてよいでしょうか

741 名前:デフォルトの名無しさん [2022/09/28(水) 19:01:46.26 ID:8l5UWazH0.net]
>>736
こんな感じ?
https://i.imgur.com/wuSExDf.png

742 名前:デフォルトの名無しさん mailto:sage [2022/09/28(水) 19:28:29.47 ID:Aad51sjLa.net]
>>736
Private Function F(R As RangeRange, S As String) As Boolean
Dim C As Range
For Each C In R
If C.Value = S Then
F = True
Exit Function
End If
Next
F = False
End Function
...
Select Case True
Case F(Range("A1:100"), 文字列A)
...
Case F(Range("B1:100"), 文字列A)
...
Case ...
End Select

743 名前:デフォルトの名無しさん mailto:sage [2022/09/28(水) 19:32:38.30 ID:Aad51sjLa.net]
>>740
たいていのプログラムだと有意な差はでないから気にせずに作りやすい方で作れ
有意な差がでそうならまず測定

744 名前:デフォルトの名無しさん [2022/09/28(水) 19:38:38.93 ID:n6LgYqsE0.net]
>>740
これも恐らくの話で申し訳ないけど、
元々Withで設定されているインスタンスが既に生成されているものであれば、その格納アドレス先を読むだけなので
Withがループの外にあっても中にあっても処理コストは変わらないと思う。
変わったとしても繰り返し実行での誤差と見分けが付かない程度と思われる。

逆にインスタンスが生成されておらず、With New 〜 のようにWithでインスタンスを生成する場合は
ヒープエリアのメモリにそのインスタンスを展開するため、Withがループの外に有った方が処理コストは低くて済む。


・・・はず。

745 名前:デフォルトの名無しさん [2022/09/28(水) 19:40:24.19 ID:2tCqxjcra.net]
とりっきー

746 名前:デフォルトの名無しさん mailto:sage [2022/09/28(水) 19:51:29.67 ID:30UfjVhGd.net]
>>739

ケツの穴をガバガバにして全通しするいやらしい関数だよ

Select Case True
Case オナラ
よし通れ
Case うんこ
よし通れ
End Select



747 名前:デフォルトの名無しさん mailto:sage [2022/09/28(水) 21:06:15.14 ID:Apn5XmOg0.net]
>>742
結局If文でラップしてるだけじゃん

748 名前:デフォルトの名無しさん mailto:sage [2022/09/28(水) 21:06:47.83 ID:vR69ytL90.net]
>>746
汚ねえな。。
こっちは夕食のカレー食ってんだぞ。。

749 名前:デフォルトの名無しさん mailto:sage [2022/09/28(水) 21:20:17.00 ID:0sCmeNkX0.net]
>>747
If 文でラップとか意味わからんこと言われてもw

750 名前:デフォルトの名無しさん mailto:sage [2022/09/29(木) 00:27:52.00 ID:tkXe+LzA0.net]
ヘイヘイヘイ~!
もしも~オブジェクト変数でぇ~宣言したぁ~値がぁ🎵
ラップ調

751 名前:デフォルトの名無しさん [2022/09/29(木) 01:53:20.13 ID:I3DbECBa0.net]
ラップのセンスはいまいちだね

752 名前:736 mailto:sage [2022/09/30(金) 17:41:05.63 ID:8DTKPQSA0.net]
>>738-742
ありがとうございました。
変数Strの中の値が配列Listのどれかと一致するかということだったので、そのCountIFがまさにその通りでした。
それようの関数書いてSelect case True使わせていただきます。

753 名前:デフォルトの名無しさん [2022/09/30(金) 21:34:23.42 ID:RGIc4eHD0.net]
>>752
Select Case True の話持ち出しといてなんだけど
最初のCase の条件に引っ掛かってその下の処理を実行した後でも
次のCaseの条件に引っかかったらその下の処理も実行するからそれだけは気をつけてね

754 名前:デフォルトの名無しさん (スッップ Sd32-r4yT) mailto:sage [[ここ壊れてます] .net]
>>753
そんなことないのでは?と思って試したけどやっぱりそんなことなかったんだが
普通はcaseの条件の中に入ったら次のステップはEnd Selectにいかないか?
Dim ncount As Long
ncount = 0
Select Case True
Case 0 = 0
ncount = ncount + 1
Case 1 = 1
ncount = ncount + 1
Case 2 = 2
ncount = ncount + 1
End Select
Debug.Print ncount
これは1になるんだが

755 名前:デフォルトの名無しさん (ワッチョイ 927c-cqZP) mailto:sage [[ここ壊れてます] .net]
>>754
多分breakいれなきゃいけないCとかと勘違いしてるんだと思う

756 名前:デフォルトの名無しさん mailto:sage [2022/09/30(金) 22:50:53.72 ID:oHn8O8ll0.net]
Select みたいな文で複数の選択肢が条件満たした場合に複数の選択肢を実行する言語って PowerShell ぐらいしか知らんけど他にもあるんだろうか?



757 名前:デフォルトの名無しさん mailto:sage [2022/09/30(金) 23:04:52.77 ID:FO5tGPcx0.net]
>>756
cとかそうだったはずだし、たぶん複数実行するほうが多数派なんじゃね
c#も、文法上は複数実行することになってるけど、break書いて抜けないと怒られるという
よくわからんことになってるし

758 名前:デフォルトの名無しさん mailto:sage [2022/09/30(金) 23:17:37.16 ID:2no5G0l30.net]
CもそうだしJavaもそうだしPythonもそうだしJavaScriptもそう

759 名前:デフォルトの名無しさん mailto:sage [2022/09/30(金) 23:34:30.49 ID:oHn8O8ll0.net]
>>757-758
C/C++ はそもそも複数選択肢が条件満たすことはないよ(たいていの処理系でコンパイルエラーになる)
fall through と勘違いしてるでしょ

760 名前:デフォルトの名無しさん mailto:sage [2022/09/30(金) 23:56:30.92 ID:2no5G0l30.net]
>>759
ああそうだ。勘違いです
申し訳ない

761 名前:デフォルトの名無しさん [2022/10/01(土) 00:36:40.48 ID:fyOJn4KOa.net]
>>754
これってコンパイル時に畳み込みで定数化されて同一のラベルが複数あってエラーになるとかしないのか

762 名前:デフォルトの名無しさん [2022/10/01(土) 01:42:48.83 ID:a0drtoBbd.net]
>>761
馬鹿にはそう思えるのだろ

763 名前:デフォルトの名無しさん mailto:sage [2022/10/01(土) 01:48:20.03 ID:AX86MJ2c0.net]
>>759
ああ、まさにfall throughだった

つかそうなると、fall throughじゃなくて
複数一致したら複数ブロック実行するような言語って知らないな
PowerShellってそうなのか?

764 名前:デフォルトの名無しさん mailto:sage [2022/10/01(土) 01:53:07.95 ID:AX86MJ2c0.net]
>>761
VBAのCaseは定数以外にいろいろ書けるから

765 名前:デフォルトの名無しさん mailto:sage [2022/10/01(土) 04:50:29.38 ID:igg+s+OR0.net]
>>763
複数一致
同じ条件を複数回追加すれば、それらすべてがトリガーされます。
https://learn.microsoft.com/ja-jp/powershell/scripting/learn/deep-dives/everything-about-switch?view=powershell-7.2

766 名前:デフォルトの名無しさん [2022/10/01(土) 07:29:29.38 ID:66c8QTBM0.net]
みんないろんな言語やってるのね



767 名前:デフォルトの名無しさん mailto:sage [2022/10/01(土) 07:40:45.91 ID:BiebxrBw0.net]
他言語やってる人が暇潰しに見に来る場所って印象があるよね
質問も簡単だし答えるほうに余裕があるので他スレと比べると寛容というかギスギスしてない

768 名前:デフォルトの名無しさん [2022/10/01(土) 13:08:15.88 ID:sQwPc1U3d.net]
Excelでデータベースを作り、各レコード?事に
〜月〜日 〜
〜月〜日 〜
みたいなログを表示したいのですがどの様にすればできるのか教えていただけませんか?

769 名前:デフォルトの名無しさん mailto:sage [2022/10/01(土) 13:10:34.86 ID:PSWCeSJW0.net]
キーボードで打ち込め

770 名前:デフォルトの名無しさん mailto:sage [2022/10/01(土) 13:17:44.94 ID:GEkLNCKa0.net]
>>768
入門書買って自分で勉強したらどうかな
あ、EXCELが入っているPCを持ってないと無理かも

771 名前:デフォルトの名無しさん [2022/10/01(土) 13:31:32.89 ID:sQwPc1U3d.net]
テキストボックスにセルの値を参照するとか、繰り返しの処理とかlookup関数とかindexとmatch関数はわかります
あとはこのリストが欲しいです

772 名前:デフォルトの名無しさん mailto:sage [2022/10/01(土) 13:34:23.97 ID:mp76wcbAa.net]
MSのサイトを見ればいいだけじゃね?

773 名前:デフォルトの名無しさん mailto:sage [2022/10/01(土) 14:11:06.32 ID:m6/aGG23M.net]
>>771
漠然としすぎていて適切に回答できない
書式設定のこと?ファイル出力?
どこにそれを表示したいの?

774 名前:デフォルトの名無しさん mailto:sage [2022/10/01(土) 14:50:47.98 ID:ozHkf13K0.net]
もう自分で勉強してくれって。

775 名前:デフォルトの名無しさん [2022/10/01(土) 15:38:51.00 ID:66c8QTBM0.net]
>>768
そもそもそのログの日付とやらはどこから持ってくるつもりなのか

776 名前:デフォルトの名無しさん [2022/10/01(土) 15:39:00.83 ID:05rfSfda0.net]
>>773
すみません
VBAのユーザーフォームで検索用のテキストボックスを作り、
検索結果に該当したレコード(行)を選択(抽出)?して
それをテキストボックス2やリストボックスに表示したいです

〜番(ID)

名前
テキストボックス(リストボックス)
〜月〜日 何をした

みたいな表示画面が作りたいです



777 名前:デフォルトの名無しさん [2022/10/01(土) 15:40:48.76 ID:05rfSfda0.net]
>>775
〜番号 名前 〜 〜 〜
の様な感じで列に追加していくやり方で作ろうかなと考えています

778 名前:デフォルトの名無しさん [2022/10/01(土) 16:48:39.94 ID:vnBH5ihbM.net]
>>776
まずワークシート上でlookup,index,matchで検索、表示できるものを作る。
それからフォームのテキストボックスに入れた値をワークシートの検索用のセルに書き込み、結果をフォーム上のテキストボックス、リストボックスに書き込むVBAを作る。

779 名前:デフォルトの名無しさん [2022/10/01(土) 16:50:40.38 ID:05rfSfda0.net]
>>778
ありがとうございます
まずはそこからですよね

780 名前:デフォルトの名無しさん mailto:sage [2022/10/01(土) 16:52:55.19 ID:GEkLNCKa0.net]
どこでつまずいているかを書かないで答えだけほしいとか言われてもね

781 名前:デフォルトの名無しさん mailto:sage [2022/10/01(土) 16:55:41.93 ID:HuJ3UkiEd.net]
>>768
こんなんVBAでもなんでもなくシステムを作りたいっていってるようなもんでしょ
金払って作ってもらえよ

782 名前:デフォルトの名無しさん mailto:sage [2022/10/01(土) 17:09:04.65 ID:AX86MJ2c0.net]
>>768
なぜそれをエクセルでやりたいと思ったのか

今のレベルだと一から勉強レベルだと思えるが
c#かせめてVB.Net覚えたほうがいいんじゃない

783 名前:デフォルトの名無しさん mailto:sage [2022/10/01(土) 18:15:10.78 ID:BiebxrBw0.net]
セルの内容(日付のところは文字列型(頭にアポストロフィ)で入れてる)
ID 名前 日付 イベント
1 名前1 2012年3月14日 Aをした
2 名前2 2012年3月15日 Bをした
3 名前3 2012年3月16日 Cをした
4 名前4 2012年3月17日 Dをした
5 名前5 2012年3月18日 Eをした
6 名前6 2012年3月19日 Fをした

※Sheet1のマクロ
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
With UserForm1
y = ActiveCell.Row
.TextBox1 = Cells(y, 1)
.TextBox2 = Cells(y, 2)
.TextBox3 = Cells(y, 3) + vbNewLine + Cells(y, 4)
End With
End Sub

フォーム(UserForm1)を作って下記コントロールを配置
TextBox,TextBox1,TextBox2,TextBox3(Multiline=true),CommandButton1

UserForm1のマクロ
Private Sub CommandButton1_Click()
Sheets(1).Range("A1").AutoFilter 2, "*" & UserForm1.TextBox.Text & "*"
End Sub

ファイル開くイベントとかボタン作って下記マクロでフォームを表示
UserForm1.Show vbModeless
聞いた限りではこんなのしか思い浮かばない

784 名前:デフォルトの名無しさん mailto:sage [2022/10/01(土) 18:31:08.84 ID:oCrNNmAI0.net]
VBAのPicture.Insertでリンク貼付けさせないようにクリップボード利用でPasteで貼り付けてみたら画像が異常に重くなりすぎて使い物にならない…。
おとなしくShapes.addPicture使うしかない?

785 名前:デフォルトの名無しさん mailto:sage [2022/10/01(土) 18:49:59.64 ID:PeKIyBQF0.net]
>>768
Listobject作ってListrowsを都度登録する仕組みを作って目的のListrows()を呼び出すユーザーフォームを作ればいいんじゃないっすかね。

786 名前:デフォルトの名無しさん mailto:sage [2022/10/01(土) 18:55:31.78 ID:HuJ3UkiEd.net]
まず質問者は何ができて何ができないのか気になるが何もできないんだろうなと推測してる
なのでここで丸投げしてバカなお人よしに作ってもらおうとしてるんだろ



787 名前:デフォルトの名無しさん mailto:sage [2022/10/01(土) 23:20:55.43 ID:BiebxrBw0.net]
猪木が死んだ、時代が流れていく
思えばPCとの付き合いももう40年か
戦時中はと口癖のように言っていたジジイ共も消えてアマチュア無線なみにニッチな趣味だったPCが主流になるとは不思議なものだ

788 名前:デフォルトの名無しさん mailto:sage [2022/10/02(日) 07:27:45.20 ID:ySn/5a2I0.net]
>>784
もとの画像が大きいんじゃね、表示用の画像を別途つくってから貼り付けてみ

789 名前:デフォルトの名無しさん [2022/10/02(日) 13:27:44.47 ID:TlawqFoR0.net]
>>783
わざわざありがとうございます
助かりました

790 名前:デフォルトの名無しさん [2022/10/02(日) 15:47:28.98 ID:DdgukWIZ0.net]
>>787
おいおいいつだよって思ったら昨日かよ

>>786
それでいいと思うんだよな
それが社会の基本だし、暇な元事務のNEETはそれで快楽を得つつ勉強になり、
転職への自信になるだろう

791 名前:デフォルトの名無しさん [2022/10/02(日) 20:54:31.26 ID:TlawqFoR0.net]
VBAは作業を登録して自動化するくらいで覚えておいた方がいいですよね

792 名前:デフォルトの名無しさん mailto:sage [2022/10/03(月) 06:16:19.93 ID:S2WAje4f0.net]
>>788
800kの画像でやってみたけど15Mぐらいまで巨大化してしまう
やはりAddPictureで代用してみる

793 名前:デフォルトの名無しさん mailto:sage [2022/10/03(月) 07:27:24.16 ID:4wRZXMmm0.net]
VBEに書いたコードの整列っていうかコードを整えるっていうか自動インデントっていうかそんなショートカットキーがあったと思うけどなんだっけ?

794 名前:デフォルトの名無しさん (ワッチョイ 53ce-OAEy) mailto:sage [[ここ壊れてます] .net]
タブ

795 名前:デフォルトの名無しさん [2022/10/03(月) 20:58:11.99 ID:FDmFS1zQ0.net]
>>791
変な枷付けること考えんと
好きに作っていいんやで

796 名前:デフォルトの名無しさん mailto:sage [2022/10/04(火) 15:00:55.06 ID:pLalriKq0.net]
イベントで質問

余所で作ったエクセルにVBAで改造加えてるんだけど
1マス入力だけするSheetにActiveXのコマンドボタン付けたら
Worksheet_SelectionChange
が発生しなくなった

コマンドボタン押したイベントは拾ってるので
EnableEventsがFalseってわけじゃない(イミディエイトで確認済み)

デザインモードを解除してもWorksheet_SelectionChangeイベントが起きないので
しょうが無いからまた一から作り直したんだが
この現象って頻発するもの?
ググってもOfficeの修復かEnableEventsしか解決策が出てこない



797 名前:デフォルトの名無しさん mailto:sage [2022/10/04(火) 15:54:59.32 ID:TDYI1fTGd.net]
>>792
Sub Macro1()
ActiveSheet.Pictures.Insert "C:\Work\Sample1.jpg"
End Sub



これで400KBのpngで試してみたけど
なぜかxlsmファイルのサイズは15KB
何か別の要因とか

798 名前:デフォルトの名無しさん mailto:sage [2022/10/04(火) 19:28:07.31 ID:uOFwOuxi0.net]
>>796
そりゃエクセルを改造したら駄目だろ

799 名前:デフォルトの名無しさん mailto:sage [2022/10/04(火) 19:47:41.77 ID:o+JurUyd0.net]
>>792
オプションの詳細設定-イメージのサイズと画質 ってどうなってる?

800 名前:デフォルトの名無しさん [2022/10/04(火) 21:08:36.46 ID:vyetwO+c0.net]
Dim ar(2) As Variant
ar(0) = 1
ar(1) = 2
ar(2) = Split("1,2,3,4,5", ",")
Dim i
For i = 0 To UBound(ar(2))
ar(2)(i) = CLng(ar(2)(i))
Next i

splitで作ったジャグ配列の中身をlong型に変換したいです。
variant変数に一度入ったらもう無理ですか?
一応他の変数に入れる事で型変換には成功するのですが。
余計な変数を二つも用意してstringで作成されたのを一時的なvariant型ノーマル配列に
おさめてmそのあとで本当に使いたい配列のジャグ配列に入れていくというのが
どうも汚い感じで腑におちません。
アドバイスもらえると助かります。

801 名前:デフォルトの名無しさん [2022/10/04(火) 22:26:54.77 ID:cce3s7590.net]
>>800
出来ません
諦めてください

802 名前:800 [2022/10/04(火) 22:43:48.69 ID:vyetwO+c0.net]
>>801
ありがとうございます。
ジャグ配列はRedim出来ないのがデメリットですね。
動的な配列の中にジャグ配列なのですが、なんとか先に不確定な親配列の中にある
不確定な数のジャグ配列を一時的なLong型配列に作って
そこからさらにsplitなしでなんとか作ろうとあれこれしてたら
よっぽど>>800の方法の方が処理がわかりやすくなってしまい徒労に終わりました。

諦めます。踏ん切りつきました。

803 名前:デフォルトの名無しさん mailto:sage [2022/10/04(火) 23:35:06.72 ID:o+JurUyd0.net]
>splitで作ったジャグ配列
>動的な配列の中にジャグ配列
ジャグ配列って用語の使い方が微妙に間違ってる気がするが...

そもそも文字列を分割して配列作ってるんだから文字列の配列になるのが当然で
Variant上等でやるなら、それを使う側がVariantで受ければいいだけでは?

まあ俺ならどうしても文字列をSplitしてLongにしたいなら
Longの配列返すSplitのラップ関数作るけど

804 名前:デフォルトの名無しさん [2022/10/05(水) 04:48:52.00 ID:b9GTOuH90.net]
sqliteで作ったジャグ配列。

805 名前:デフォルトの名無しさん mailto:sage [2022/10/05(水) 07:10:06.74 ID:8YZU4Hq7a.net]
>>797
それでいくとうまくいくんだけどね、
通常のPictures.Insertだとリンク貼付けなのよ。他人に送付したら見れない。

だから一旦クリップボード経由でPaste使ってやってるんだがそれだと容量がヤバくなる。

806 名前:デフォルトの名無しさん [2022/10/05(水) 08:07:32.65 ID:hw4y4dFR0.net]
そもそも何でもかんでも配列で処理しようとするのがちょっとねぇ。
例えば列に当たる要素毎に違う型を使いたいなら
ちょっと仕組みは大きくなるけどADODBのRecordsetを使うことや
1行の列データ単位の値を格納するクラスを作ってそれを行単位としてディクショナリやコレクションに追加して行くことも検討することを視野に入れると
結局後で読みやすく汎用性の高いロジックが組めたりする。

処理速度優先なら配列一択だからそのときのシュチュエーションに合わせて使い分けだね。



807 名前:デフォルトの名無しさん mailto:sage [2022/10/05(水) 08:19:21.40 ID:SsR8S72r0.net]
構造体ではできんの?
ジャグ使う機会無いからなんとも言えんが

808 名前:デフォルトの名無しさん mailto:sage [2022/10/05(水) 10:50:57.71 ID:HrKgxVhUd.net]
すぐDBとか持ち出す奴いるけどコスト考えたらそう簡単にDBなんか使わんと思うけどね
普通に配列処理用の関数のみのモジュールでコード管理すればいいだけと思うわ

809 名前:デフォルトの名無しさん [2022/10/05(水) 13:20:52.03 ID:7KiNZ4t1d.net]
>>808
何のコスト?

810 名前:デフォルトの名無しさん mailto:sage [2022/10/05(水) 14:41:00.50 ID:bxBPBLxH0.net]
やっぱ好きなように作るのが1番ね

811 名前:デフォルトの名無しさん mailto:sage [2022/10/05(水) 15:47:13.70 ID:DsSYxIFi0.net]
ワークシートがDBみたいなもんだしね

812 名前:デフォルトの名無しさん mailto:sage [2022/10/05(水) 15:53:15.41 ID:tZ9pwx2fM.net]
学習コスト

813 名前:デフォルトの名無しさん mailto:sage [2022/10/05(水) 21:19:11.66 ID:/BrWnOTx0.net]
コストコ

814 名前:デフォルトの名無しさん mailto:sage [2022/10/05(水) 23:35:05.88 ID:bxBPBLxH0.net]
コスパ良い

815 名前:デフォルトの名無しさん [2022/10/06(木) 16:49:22.22 ID:wENRazb+d.net]
例えば、誕生石を取得するGetBirthStone関数を作ろうとすれば引数は「日付 as Variant」と「月 as Integer(Long)」のどちらがいいでしょうか?

816 名前:デフォルトの名無しさん mailto:sage [2022/10/06(木) 16:54:16.04 ID:lmEPcDvIM.net]
Dateではあかんのか?



817 名前:デフォルトの名無しさん mailto:sage [2022/10/06(木) 16:55:37.45 ID:1FPDwTBGM.net]
そんなもんVLOOKUPで誕生石シートを検索すれば十分
VBAを正しく使うコツはVBAを可能な限り書かないことだよ

818 名前:デフォルトの名無しさん [2022/10/06(木) 17:19:15.50 ID:wENRazb+d.net]
>>816
Date型でも大丈夫ですか?

一応、最初の部分はこう書いてみました
If Not IsDate(日付) then
GetBirthStone = CVErr(xlErrValue)
Exit Function

819 名前:デフォルトの名無しさん [2022/10/06(木) 17:48:34.71 ID:KR9VbeXw0.net]
>>817
いや、むしろVBAだけの方がメンテしやすい
データとロジックは分ける方がいい

820 名前:デフォルトの名無しさん mailto:sage [2022/10/06(木) 19:10:02.45 ID:YSVEcn1gd.net]
>>815
元のデータが何によるかで違うけど「月 as Integer(Long)」でいいのではと思う
仮に元のデータが日付でもGetBirthStone(Month(日付))で済む
月を渡すようなケースがありえないなら日付を渡して関数内でMonthを使うでもいい

821 名前:デフォルトの名無しさん (ワッチョイ 435f-pIDl) [[ここ壊れてます] .net]
月だけでいい
特定の日付に依らずある月の誕生石を知りたい場合に
意味のないDate値用意しなきゃいけなくなるから可読性が落ちる

>>817
誕生石みたいに改訂されたことがニュースになるくらい固定されてる内容ならコードにベタ打ちでいいと思う
祝日みたいに毎年変動するものとか、組合せの数が多すぎる要素ならシート管理の方が扱いやすいと思うけど

822 名前:デフォルトの名無しさん (ワッチョイ d3da-pIDl) mailto:sage [[ここ壊れてます] .net]
>>815
その程度のこと自分で決められんようでは時間かかってしょうがないだろ

823 名前:デフォルトの名無しさん (ワッチョイ 6f8c-SQdC) mailto:sage [[ここ壊れてます] .net]
>>815
Function getBirthStone(日付 As Date)
Application.Volatile True
getBirthStone = WorksheetFunction.Choose(Month(日付), "ガーネット", "アメシスト", "アクアマリン", "ダイヤモンド", "エメラルド", "ムーンストーン、真珠", "ルビー", "ペリドット", "サファイア", "オパール、トルマリン", "トパーズ", "トルコ石、タンザナイト")
End Function

こんなかんじ?

824 名前:デフォルトの名無しさん [2022/10/06(木) 22:32:10.00 ID:wENRazb+d.net]
>>823
ありがとうございます。

825 名前:デフォルトの名無しさん mailto:sage [2022/10/06(木) 22:47:25.99 ID:HCQdlFdq0.net]
>>823
わざわざワークシート関数を呼ばなくてもVBAにもChoose関数あるよ
https://learn.microsoft.com/ja-jp/office/vba/language/reference/user-interface-help/choose-function

826 名前:デフォルトの名無しさん mailto:sage [2022/10/06(木) 23:06:53.10 ID:gOgPUvPm0.net]
ほんとだw てへ



827 名前:800 mailto:sage [2022/10/09(日) 17:09:18.30 ID:Kilq6kjS0.net]
>>803
ラップ関数作る解決方法最高です。
頭固かったです。
他にも導入できそうなところが見つかり助かりました。
感謝です。

828 名前:デフォルトの名無しさん mailto:sage [2022/10/10(月) 21:48:05.32 ID:P58+Ol8v0.net]
>誕生石みたいに改訂されたことがニュースになるくらい固定されてる内容ならコードにベタ打ちでいいと思う
>>823を見ての通りこの手は表記ゆれが問題になる事が多いから
可能な限り外部データにした方がいい

829 名前:デフォルトの名無しさん mailto:sage [2022/10/11(火) 13:53:54.44 ID:uAPvvwer0.net]
インプットボックスで入力される値が数字かどうか判断するコードってどう書けばいい?

830 名前:デフォルトの名無しさん mailto:sage [2022/10/11(火) 14:15:03.61 ID:fEDU7G4fd.net]
・符号(+-)を許すか
・ドット(小数点)を許すか
・カンマ(桁区切り)
を踏まえて文字の妥当性チェックすればいいんじゃないの

831 名前:デフォルトの名無しさん mailto:sage [2022/10/11(火) 14:17:40.55 ID:fEDU7G4fd.net]
あと自分はWorksheetFunction使うの好きじゃないけど
WorksheetFunction.IsNumber
でもいいかもね

832 名前:デフォルトの名無しさん mailto:sage [2022/10/11(火) 14:26:37.29 ID:H84z/pNR0.net]
全角は?漢数字は?ローマ数字は?欧米式の桁区切りは?
入力検査は考え始めるとキリがない分野の一つだぜ

833 名前:デフォルトの名無しさん [2022/10/11(火) 15:13:10.17 ID:DoWcBI1l0.net]
>>829
IsNumericじゃダメなの?

834 名前:デフォルトの名無しさん mailto:sage [2022/10/11(火) 17:02:04.45 ID:uAPvvwer0.net]
>>833
さんきゅーそれだ
てかVariant型が数値かどうか調べられるんだな~
書き方解ったらvartypeとかtypenameでも行けそうな気がする
ちょい試してみよ

835 名前:デフォルトの名無しさん [2022/10/11(火) 18:13:13.59 ID:DoWcBI1l0.net]
>>834
語弊があるといけないから言っておくと、
IsNumericはあくまで数値として扱える値(数値に変換出来る値)かどうかを判定するよ。
だからString型でも”123”みたいのはTrueを返すからそこは注意してね。

836 名前:デフォルトの名無しさん mailto:sage [2022/10/11(火) 20:16:52.08 ID:hb9m45MO0.net]
考慮点はまだあるぞ
IsNumericって
"\3"とか"3e3"とか"&habc"とかもTrueだぜ



837 名前:デフォルトの名無しさん mailto:sage [2022/10/12(水) 08:33:18.55 ID:FAaW2+wFd.net]
じゃ足し算する関数を別に作ってノーエラーで戻ってきたら数値

Sub Main()
 '全角数字も数字と見なす
 If Suujikana(StrConv(InputBox("入力せぇ"), vbNarrow)) Then
  MsgBox "数字だよ"
 Else
  MsgBox "数字じゃないよ"
 End If
End Sub


Function Suujikana(moji As Long) As Boolean
 On Error GoTo er
 moji = moji + moji
 Suujikana = True
 Exit Function
er:
 Suujikana = False
End Function

838 名前:デフォルトの名無しさん mailto:sage [2022/10/12(水) 08:35:48.26 ID:FAaW2+wFd.net]
あ、これじゃだめかえらーでるあ

839 名前:デフォルトの名無しさん mailto:sage [2022/10/12(水) 08:38:00.09 ID:FAaW2+wFd.net]
このやろ、variantにしたら+で文字列つくりやがって
こんのやろぉ

840 名前:デフォルトの名無しさん mailto:sage [2022/10/12(水) 08:39:59.19 ID:FAaW2+wFd.net]
これでいい?らめ?

Sub Main()
 '全角数字も数字と見なす
 If Suujikana(StrConv(InputBox("入力せぇ"), vbNarrow)) Then
  MsgBox "数字だよ"
 Else
  MsgBox "数字じゃないよ"
 End If
End Sub


Function Suujikana(moji As Variant) As Boolean
 On Error GoTo er
 moji = moji * moji
 Suujikana = True
 Exit Function
er:
 Suujikana = False
End Function

841 名前:デフォルトの名無しさん [2022/10/12(水) 09:33:08.65 ID:JFXNmWRt0.net]
>>836
まぁその辺は数値として受け取れるとも言えるからね。
その辺除外したいなら最初に“¥”や“e”や“&h”が含まれていたら数値ではないって分岐入れとけばいいだけじゃないの?

842 名前:デフォルトの名無しさん mailto:sage [2022/10/12(水) 09:45:17.75 ID:05zETGAlM.net]
>>840
自分も同じこと考えたけど型の制約が緩いと面倒くさそうなので思考を放棄した、よく頑張ったな

843 名前:デフォルトの名無しさん mailto:sage [2022/10/12(水) 10:05:45.44 ID:05zETGAlM.net]
そういえば昔型はあるのとないのではどっちが良いのかって記事を見たことあるな
結局型がないと論理エラーが出ないように型をちゃんと理解する必要があるって書いてた

844 名前:デフォルトの名無しさん mailto:sage [2022/10/12(水) 10:15:23.77 ID:FnwlmZOz0.net]
kgとkmは単純に足し算しても意味ないからな

845 名前:デフォルトの名無しさん mailto:sage [2022/10/13(木) 04:03:11.23 ID:j3UF+2500.net]
別にVBA使わなくてもワークシート関数でできるじゃんって意見どう思う?

846 名前:デフォルトの名無しさん [2022/10/13(木) 04:08:37.62 ID:QthptHxba.net]
やりたいようにやれ



847 名前:デフォルトの名無しさん mailto:sage [2022/10/13(木) 05:43:31.20 ID:l6HSpiwg0.net]
>>845
内容によるけどまあワークシート関数でできるならその方がいいだろうな

848 名前:デフォルトの名無しさん [2022/10/13(木) 06:51:28.60 ID:R3JkkIAh0.net]
A1に入力されているものが消えたらB1以降の入力セルデータが右から左に自動で繰り上がってくるようにしたいのですがこれで大丈夫ですか?

これをA20くらいまで適用したいんですけど教えて貰えませんか...?

Private Sub Worksheet_Change(ByVal
Target As Range)
If Target.Address = Range("A1").Address
And IsEmpty(Target) Then
Application.EnableEvents = False
lastrow = Cells (Rows.Count,
"A").End(xIUp).Row
Range("B1:F1"&lastrow).Copy
Range("A1").PasteSpecial xIPasteValues
Range ("A"&lastrow).ClearContents
Application.EnableEvents = True
End If
End Sub

849 名前:デフォルトの名無しさん mailto:sage [2022/10/13(木) 11:53:03.67 ID:Ue05WQwm0.net]
キーボード操作でマクロ作って呼べばいいんじゃね

850 名前:デフォルトの名無しさん mailto:sage [2022/10/13(木) 13:03:11.83 ID:8suwpN2kr.net]
"B1:F"&lastrow
下から4行目は何の処理かな
g列以降にデータがないなら、a列削除でもいけそう

851 名前:デフォルトの名無しさん mailto:sage [2022/10/13(木) 13:57:54.49 ID:UFLyO0SD0.net]
xIUp >> xlUp >> xlLeft
xIPaste >> xlPaste

excel だから xl だよ
本から手入力したのかな

852 名前:デフォルトの名無しさん mailto:sage [2022/10/13(木) 15:04:44.40 ID:xeSsgHCJ0.net]
文字列にしてTrimして
右から一文字づつAscでコード調べて数字判別してる

853 名前:デフォルトの名無しさん [2022/10/15(土) 01:10:39.87 ID:zmWNo0nm0.net]
そういや何気にVBAの中でCallByName使うとJavaScript 使えるらしいね。
使ったことないけど。

854 名前:デフォルトの名無しさん mailto:sage [2022/10/15(土) 01:25:23.69 ID:eU4yePu40.net]
>>853
どういうこと? どうやるの?

855 名前:デフォルトの名無しさん mailto:sage [2022/10/15(土) 07:21:27.16 ID:tw/asOzR0.net]
>>853
文字列で言語書いて実行するのってどうも好きじゃないな
そもそも有効な場面ってあるんだろうか
bougyuusonnin.seesaa.net/article/191171013.html

>>854
調べなよ・・・

856 名前:デフォルトの名無しさん [2022/10/15(土) 09:05:24.46 ID:zmWNo0nm0.net]
>>855
さあ?
メソッドチェーンが使えるくらい?
まぁ無理して使うもんでもないような。
現にJavascript知っててもVBAに混ぜて
使うような状況なんてなったことないし、
大体記述がめんどいし。



857 名前:デフォルトの名無しさん mailto:sage [2022/10/15(土) 09:07:30.39 ID:tw/asOzR0.net]
>>856
ありがとう
やっぱりほとんど無いよね。

858 名前:デフォルトの名無しさん mailto:sage [2022/10/16(日) 03:31:09.39 ID:IoSf1xr/0.net]
メリットはネイティブの手段でJSONがパースできるようになる事なんだけどVBAで必要になることはほとんどないか
ちなみに似たような方法でHtmlFileからIEのjavascriptを呼ぶ方法もある

859 名前:デフォルトの名無しさん mailto:sage [2022/10/16(日) 05:54:19.77 ID:zEVEZIxw0.net]
ネイティブ?

860 名前:デフォルトの名無しさん mailto:sage [2022/10/16(日) 06:00:43.85 ID:q8mBJvHk0.net]
予め言語側で用意されてるってことじゃない

861 名前:デフォルトの名無しさん [2022/10/16(日) 06:58:42.73 ID:4eBUdjNxM.net]
正規表現をRegExpオブジェクトで利用することはネイティブですか?

862 名前:デフォルトの名無しさん [2022/10/16(日) 08:27:49.05 ID:6FfxZTeW0.net]
正規表現をRegExpオブジェクトで利用したらハゲますよ

863 名前:デフォルトの名無しさん mailto:sage [2022/10/16(日) 23:46:46.75 ID:n3hO69PQ0.net]
性器のことしか考えてないから禿げるんじゃね

864 名前:デフォルトの名無しさん mailto:sage [2022/10/17(月) 02:28:59.55 ID:Foj5GBltM.net]
正規表現はexcelapiを使うのが楽

865 名前:デフォルトの名無しさん [2022/10/17(月) 17:47:22.14 ID:LwSzkOCXr.net]
すみません、質問させてください
range内の空白セルを除いた部分を一気に配列に入れる方法ってありますか?
例えばA1、B2、A3、B3に1が入っていて、Range(Cells(1,1) ,Cells(2,2))を選んでいる状態で配列ArrにArr(1,1)=1、Arr(1,2)=1のみを入れる。ということです
「Range(Cells(1,1) ,Cells(2,2))を選んでいる状態」というのはFunctionで関数を作ったときにこの範囲を選んでいるという意味です
CurrentRegionを使ってもA2、B2の空白まで配列に入ってきてしまって困ってます

866 名前:デフォルトの名無しさん mailto:sage [2022/10/17(月) 17:53:55.90 ID:c98RAUt6M.net]
selectionでforeach回せばできる気がするけどな



867 名前:デフォルトの名無しさん mailto:sage [2022/10/17(月) 18:05:29.40 ID:PbBQX3S8M.net]
一気にやるなら判定文をスピルで一気に適用するか

868 名前:デフォルトの名無しさん [2022/10/17(月) 18:22:32.67 ID:KXCnFpZrr.net]
すみません、先程の質問の意図はvba 100本ノックの以下の問題を解いていましたhttps://excel-ubara.com/vba100/VBA100_062.html
最初に範囲内を配列にすべて入れてdictionaryで出す方法を考えたんですけど、範囲のところがA1:C5とかならいいのですが、A:Cだと、すべての行まで配列に入ってしまって、それの行すべて処理するようになってしまったので、数字が範囲内の最終行までを配列に入れることができれば処理速度も変わるので、そういう方法があればという質問でした

869 名前:デフォルトの名無しさん mailto:sage [2022/10/17(月) 18:56:02.19 ID:eqEJLsQnM.net]
答えも解説も書いてあるんだからそれ見ろよ

870 名前:デフォルトの名無しさん mailto:sage [2022/10/17(月) 20:25:02.38 ID:sP2+Ci5U0.net]
>>864
へーそんなのあるのか

871 名前:デフォルトの名無しさん [2022/10/17(月) 21:15:18.56 ID:8otnrSal0.net]
作成依頼です。

G列に空白セルがあった場合、その空白セルの隣のセルに入力されている値をクリアにする。

というコードを作成いただけないでしょうか。

よろしくお願いします。

872 名前:デフォルトの名無しさん mailto:sage [2022/10/17(月) 22:12:03.14 ID:ISXu5HOG0.net]
いやです

873 名前:デフォルトの名無しさん [2022/10/17(月) 22:18:07.47 ID:+NOpXqIT0.net]
待て、これは孔明の罠だ

874 名前:デフォルトの名無しさん mailto:sage [2022/10/17(月) 22:23:49.67 ID:AIOop8Dz0.net]
F、G、H列を無条件で消せばいいのね

875 名前:デフォルトの名無しさん mailto:sage [2022/10/17(月) 22:24:49.52 ID:tLF3dHHy0.net]
隣とはどっちだ
あまりにも指示が不明瞭でバカが書いたとしか思えない文章
スルーで決定

876 名前:デフォルトの名無しさん [2022/10/17(月) 22:28:51.88 ID:dYe0p6CB0.net]
>>871
マジレスするとここは質問スレであり
作成要請スレではありません。

作る方法等を聞けば教えてくれる人もいるかも知れませんが、作ってくれと丸投げにした場合、
その見返りを要求されるか一蹴されるかして終わるのが関の山です。

自分でそう言った趣旨のスレを探すか立てるかした方が賢明と思われます。



877 名前:デフォルトの名無しさん mailto:sage [2022/10/17(月) 22:46:52.95 ID:/WpPTN/JH.net]
>>871
welcome to https://mevius.5ch.net/test/read.cgi/tech/1434079972/

878 名前:デフォルトの名無しさん [2022/10/17(月) 23:47:38.34 ID:yX88xE7Ya.net]
>>874
消す方だったか、"クリア"って書くのかと思ったぜ

879 名前:デフォルトの名無しさん [2022/10/17(月) 23:49:43.92 ID:+NOpXqIT0.net]
>>878
甘い
空(そら)と白(しろ)で合わせて空白まで読み取らないと

880 名前:デフォルトの名無しさん mailto:sage [2022/10/18(火) 05:15:15.98 ID:s0SrGZFEa.net]
4000件くらいのデータのExcelファイルから
A. 特定の数十件の社員データを除いたデータファイル
B. Aで除いた数十件の社員のデータのみのファイル
を作成しなければなりません

元のファイルを2つFileCopyして
・Aから対象社員のデータをUINONメソッドでRangeに格納して一括削除
・Bから非対象社員のデータをUINONメソッドでRangeに格納して一括削除

もしくは

・Aから対象社員データをAutoFillterしてBに貼り付け
→Aから対象社員データ削除

を考えてますがどちらが速いでしょう
元の書式を活かしたExcelファイルが必要なので
CSV出力やExcelファイルにデータのみ転記することはできません

881 名前:デフォルトの名無しさん mailto:sage [2022/10/18(火) 05:41:41.52 ID:o16XpPR+M.net]
何度も繰り返し行なう作業とか面倒な作業ならVBA使うメリットもあるけど、その程度ならシートコピーとフィルターでさっさと手作業で済ませた方が手っ取り早いのでは?

882 名前:デフォルトの名無しさん mailto:sage [2022/10/18(火) 07:10:04.49 ID:v8qBslO70.net]
>>880
画面の書き換えだけ止めとけば、たぶん、どの方法でも大差ないと思うよ
Unionは重いから、削除は一括じゃない方がいいかも
気になるならベンチマークとってみれば?

883 名前:デフォルトの名無しさん mailto:sage [2022/10/18(火) 07:14:36.77 ID:NY9qjYA4d.net]
>>876
>コード書き込みや作成依頼もOK
1をよくみような

884 名前:デフォルトの名無しさん mailto:sage [2022/10/18(火) 08:05:51.17 ID:YCyRiw4bM.net]
個人的にはコード作ってとか書かれてたら困ってるんす金くださいと言われてるくらい嫌なので余計に作らないわ~
書くのは勝手だけど

885 名前:デフォルトの名無しさん [2022/10/18(火) 08:46:11.19 ID:q+c/s7kpM.net]
誰もお前には頼んでないのに、俺は作らない宣言しちゃう人って自意識過剰すぎません?

886 名前:デフォルトの名無しさん (ワッチョイ 2bcd-7iBv) mailto:sage [[ここ壊れてます] .net]
>>871
1:30で書けたけど・・・
これぐらい書くのにみんなどれぐらい時間かかるもんなの?

Sub foo()
最終行 = Cells(Rows.Count, 7).End(xlUp).Row
For i = 1 To 最終行
If Cells(i, 7) = "" Then
Cells(i, 6) = ""
Cells(i, 8) = ""
End If
Next
End Sub



887 名前:デフォルトの名無しさん mailto:sage [2022/10/18(火) 09:45:31.08 ID:345TXlIrM.net]
>>880
回答待つより実際に作って比較した方が早くない?

888 名前:デフォルトの名無しさん mailto:sage [2022/10/18(火) 10:14:58.17 ID:UuGhYYcHd.net]
>>887
いい回答だと思う
自分でやればわかることを他人に聞くのってほんとバカなのかなと思う

889 名前:デフォルトの名無しさん mailto:sage [2022/10/18(火) 10:42:22.37 ID:fjjhfMGv0.net]
>>871
Ruby で作ってみた。
未入力の列はnil となるので、a, c も未入力となる

require 'csv'

input_text = <<TEXT
,a
b,b
,c
TEXT

output_text = String.new

CSV.filter( input_text, output_text ) { |row|
row[ 1 ] = nil unless row[ 0 ] # nil の時
}

print output_text

出力
,
b,b
,

890 名前:デフォルトの名無しさん mailto:sage [2022/10/18(火) 11:09:36.18 ID:NJQ5BOf00.net]
>>885
で、誰もお前に意見聞きたいとか頼んでないのにどうしてそんな自意識過剰な反応してんの?

891 名前:デフォルトの名無しさん mailto:sage [2022/10/18(火) 13:16:40.55 ID:O7d9QRYR0.net]
>>889
見づら!
なにこのクソ言語

892 名前:デフォルトの名無しさん [2022/10/18(火) 14:44:23.15 ID:5fCnmsLA0.net]
>>886
2~3分だな90分もかからんよ

893 名前:デフォルトの名無しさん mailto:sage [2022/10/18(火) 19:46:45.52 ID:LJ6jaE7r0.net]
ちょうど今日別々のシートの範囲Unionして二次元配列にしようと思ったらエラーだったな
同一シートじゃないと無理らしいね
二次元配列同士を結合したからまあいいけど

894 名前:デフォルトの名無しさん mailto:sage [2022/10/18(火) 21:13:25.02 ID:bD7mk4M6d.net]
>>886
Nextのズレが気になって気になって今日は眠れないわ

895 名前:デフォルトの名無しさん [2022/10/18(火) 23:15:32.25 ID:fRTdwDaSa.net]
変数に漢字w = 0

896 名前:デフォルトの名無しさん mailto:sage [2022/10/19(水) 15:06:47.27 ID:XsVwav6s0.net]
マウスで範囲指定した複数のセルから値を受け取ったり書き込んだりする方法はありますですか?

"A1:C3" と指定した状態でそこに有る数値をVba側で受け取って一つ一つ何かをしたあと、
また今の指定した範囲のセルに書き込むとかです。

一つのセルであれば、ActiveCell.Value とすればいいですよね。



897 名前:デフォルトの名無しさん [2022/10/19(水) 15:45:02.14 ID:RzDK/9cQa.net]
日本語が不自由な人多いな

898 名前:デフォルトの名無しさん mailto:sage [2022/10/19(水) 16:40:42.06 ID:kjFQ3fMO0.net]
>>896
Application.Selection.Valueで出し入れできる
基本的に2次元配列を操作することになるが、
単一のセルだと配列にならないとか
複数の領域が選択されていたときにどうするかとか
細かいところを考えることになる

899 名前:906 mailto:sage [2022/10/19(水) 20:54:47.64 ID:wavRu5Wg0.net]
>>898
大変重要なキーワードを提示いただきありがとうございます。

とりあえずの目的は達成できました。

また、これで詳しい内容をググりに行けますです。

900 名前:906 mailto:sage [2022/10/19(水) 22:12:45.50 ID:wavRu5Wg0.net]
ここに書いてありました
ttps://detail-infomation.com/vba-selection/

901 名前:デフォルトの名無しさん (ササクッテロラ Sp0f-HPGf) [2022/10/20(木) 01:06:22.80 ID:Rvw6iN3vp.net]
>>886
>>889
ありがとうございます。

902 名前:デフォルトの名無しさん mailto:sage [2022/10/20(木) 06:04:53.46 ID:I98JYgIT0.net]
外出先でもスマホからマクロ実行したいからGASでプログラムやろうかと思ってる

903 名前:デフォルトの名無しさん (ワッチョイ 9f42-M5DG) mailto:sage [2022/10/20(木) 07:03:58.77 ID:D7MvRF2u0.net]
勝手にやればええやん

904 名前:デフォルトの名無しさん mailto:sage [2022/10/20(木) 09:47:53.53 ID:gU8aHBR/M.net]
GASいいよね
Googleスプレッドシートは単一のブックを皆で共有してつつき回すのが前提だから、
Excel VBAでよくあるようにデータとマクロ用ブックを分けて部署別の複数のデータファイルをVBAでまとめて集計するみたいなことをする必要性が低くて、
そもそもGASを書かなくて済むケースが多かったりする
外部APIとのデータ連携が必要なときくらいだな

905 名前:デフォルトの名無しさん mailto:sage [2022/10/20(木) 10:11:29.65 ID:od/5Btdhd.net]
ここで広げる話じゃねぇ

906 名前:デフォルトの名無しさん mailto:sage [2022/10/20(木) 11:53:08.75 ID:jbEEQ7MN0.net]
GASってスマホからも動かせるの?



907 名前:デフォルトの名無しさん mailto:sage [2022/10/20(木) 12:40:27.98 ID:gU8aHBR/M.net]
もちろん

908 名前:デフォルトの名無しさん [2022/10/20(木) 17:44:35.99 ID:zIYHKHDh0.net]
>>904
それってWeb版EXCELと何が違うの?

909 名前:デフォルトの名無しさん mailto:sage [2022/10/20(木) 17:58:16.85 ID:wfln4dMhM.net]
もちろん違わないよ
全く同じことがWeb版Excelにも言える
まあExcelにしちゃうとせっかく共有してても結局ローカルコピーを作るバカが必ず出てきて邪魔になりがちだから、間違った使い方をするのが難しいという点では好ましいかもね

910 名前:デフォルトの名無しさん mailto:sage [2022/10/20(木) 18:01:51.16 ID:rx8Gs0n5M.net]
それはWEB版を使いにくいと思ってる人が居るってことでは?

911 名前:デフォルトの名無しさん mailto:sage [2022/10/20(木) 23:20:50.15 ID:I98JYgIT0.net]
試しにAndroidスマホからボタン(図形)をクリックしたけどgasを実行できなかったよ
なんか色々と制約があるみたいだし、JAVAやC#でスマホアプリ作ったほうがいいな

912 名前:デフォルトの名無しさん [2022/10/21(金) 00:43:10.35 ID:HmQfBwoT0.net]
どんどんスレの趣旨からはなれtrくなー
そもそもスマホアプリ作るならAndroidでC#使うならXamarin使うことが前提になるしiPhoneならSwiftかObjectiveCだろ

WindowsPhoneならxamlとC#かVB.Netで作ること出来たけど死滅しちゃったからなー
Javaは実行時に中間コード翻訳が挟まるから重いし
やっぱりスマホはiPhoneをSwiftで開発するのが最強だろうな
AppleのMacで開発することが前提になるからちょいお金が必要になるけど。

ExcelのVBAやってる人はMac買うんなら別途Windows も必要だな
MacのEXCELはVBAまともに動くことを期待しない方がいいから。

913 名前:デフォルトの名無しさん [2022/10/21(金) 01:50:58.42 ID:6vVdUlmSd.net]
>>912
突っ込み所が多過ぎ

914 名前:デフォルトの名無しさん [2022/10/21(金) 08:00:32.41 ID:K0Nv/hCp0.net]
>>912
突っ込み所がほんと多過ぎ

915 名前:デフォルトの名無しさん [2022/10/21(金) 17:19:06.50 ID:qYJSQXItd.net]
質問ですが、
シートに動的に追加したボタンに対して、共通のクリックイベントを追加したいのですがやり方がわかりません。
教えてほしいです。

activesheet.buttons.addで追加したボタンに対して、
クラスモジュールで作成したクリックイベントを結びつけたいです。

916 名前:デフォルトの名無しさん [2022/10/21(金) 17:20:50.78 ID:qYJSQXItd.net]
動的にボタン作成しながらそのボタンに対して共通のクリックイベントを結びつける方法です



917 名前:デフォルトの名無しさん (ワッチョイ 9fd8-NYmr) mailto:sage [2022/10/21(金) 18:49:07.97 ID:7JSr5kXR0.net]
>>916
.OnAction プロパティにプロシージャ名を設定

918 名前:デフォルトの名無しさん (ワッチョイ 7b2f-KWxC) mailto:sage [2022/10/21(金) 19:01:18.29 ID:DZ21JFev0.net]
基本的にはボタンのOnActionにマクロ(Subのメソッド)名を設定すればいいんだが
クラスモジュールのメソッドとか直接指定できないんじゃないかな
間に標準モジュールかますとかすれば行けると思うが

919 名前:デフォルトの名無しさん (スッップ Sdbf-h7FX) mailto:sage [2022/10/21(金) 19:01:59.59 ID:2/IIqD8Nd.net]
マクロの記録でもやればおおよそやりたい事のひな型のコードはできると思うんだよね
そういうやり方で解決できない人ってなんだろと思う
ActiveSheet.Buttons.Add(168, 108, 186.75, 66.75).Select
Selection.OnAction = "Macro1"
マクロで作ったこれを参考にすればいいんじゃないのと思うが
Addで作ったものをObject型の変数で受け取ってその変数のOnActionに代入するだけでしょ
それにググればこの程度はいくらでもでてくるんだけどね

920 名前:デフォルトの名無しさん [2022/10/21(金) 23:26:00.91 ID:HmQfBwoT0.net]
>>918
確かに。
何でクラスモジュールのメソッドに紐付けようとするか謎だよな。
そもそもそれにはインスタンスが生成されていなければならない訳だし
VBAのクラスはそこまで万能では無いからシングルトンパターンでよく使われるみたいに自分で自分を生成することも出来ない。

そうすると前もって生成したインスタンスのメソッドに紐付けるしかない訳だけどそんなことVBAのクラスで本当に出来るのか?と思ってしまうわな。

921 名前:デフォルトの名無しさん [2022/10/22(土) 09:44:18.85 ID:+w0aEr6Jd.net]
クラスのモジュールではなくてもいいんですけど、何かしらの共通メソッドを呼び出せるようにしたいです。

動的に作った編集ボタンが100個くらいあって、編集するフォームを呼びだす共通メソッドに紐付けたいです。

922 名前:デフォルトの名無しさん mailto:sage [2022/10/22(土) 10:00:21.77 ID:tvj8JbCcF.net]
初心者向けサイトに出てくるWithEventのやつじゃないの
クリックならいけるけどEnterとか一部はだめだから使わなかった

923 名前:デフォルトの名無しさん [2022/10/22(土) 10:24:34.97 ID:ivMt1YnGp.net]
>>921
それは同じ関数呼んで引数で関数内で何とかするんじゃダメなの?

924 名前:デフォルトの名無しさん mailto:sage [2022/10/22(土) 10:41:03.80 ID:ANF77yYL0.net]
この辺?
https://thom.hateblo.jp/entry/2016/10/13/005105

Newしたcommandbuttonにaddeventhundlerみたいなことって出来ないのかな

925 名前:デフォルトの名無しさん mailto:sage [2022/10/22(土) 10:49:28.11 ID:tqPxko+s0.net]
だから何人も.OnActionだって言ってるのにアホなん?

926 名前:デフォルトの名無しさん mailto:sage [2022/10/22(土) 11:20:03.36 ID:c1Knyq/s0.net]
目的や使用場面が不明だけど、それは1Sheet上にボタン100ヶ必要なものなのか?
そのボタンは、どう配列・配置されるものなのか マス目に10×10とかなのか、タテとかヨコにぞろぞろ100ヶなのか
何らかのデータの塊の傍にボタンを動的に配置し、それを押すことでひな型の編集フォームを呼び出すというのか
>>924 とか上に書かれてきたサンプルを参考にして苦心して作れたとしても、結果として「それ違くね?」には成らないのか
設計の妥当性が問われる
「動的に編集ボタンをつくる」ための何らかのイベントが在るわけだし、だったらそれに結びつけた方が無駄が少ない とも



927 名前:デフォルトの名無しさん [2022/10/22(土) 15:30:44.10 ID:UYHwlHOK0.net]
>>926
確かにねー
でもリストの行の横っちょにボタン付いてて
そのボタン押すとその行のデータ読んできて処理するとか
ExcelのVBAじゃなくてもよくあることだし
そう考えると100どころか1000くらいくっついてても
それがユーザーにとって使いにくいとは言い切れない
ケースもあるから何とも言えないね

928 名前:デフォルトの名無しさん mailto:sage [2022/10/22(土) 16:00:19.50 ID:Md3R6uzp0.net]
ポタン100個つけるならフォームは考えないでワークシートでselectionchangeでいいと思う

929 名前:デフォルトの名無しさん mailto:sage [2022/10/22(土) 16:21:19.65 ID:ANF77yYL0.net]
onclickでセルによって判別でもいいかもね

930 名前:デフォルトの名無しさん (ブーイモ MMe6-QNr5) mailto:sage [2022/10/22(土) 17:25:01.86 ID:R6+v0VTJM.net]
>>929
あ、そっちのほうがいいね

931 名前:デフォルトの名無しさん mailto:sage [2022/10/22(土) 18:08:51.98 ID:8rFwb/oz0.net]
ボタンって最大何個ぐらい貼り付けできるんだろ?
メモリがあれば10万個とか貼れんのかな

932 名前:デフォルトの名無しさん [2022/10/22(土) 18:14:52.06 ID:CPpJyo/d0.net]
>>928
>>929
確かにボタンにこだわる必要はないですね
セルクリック時にフォーム呼び出したらいいですね

933 名前:デフォルトの名無しさん mailto:sage [2022/10/22(土) 22:30:23.86 ID:GMPaa0s5d.net]
と言う事で無事解決しましたね

934 名前:デフォルトの名無しさん mailto:sage [2022/10/23(日) 11:33:27.17 ID:le1S+yxh0.net]
Excelのイベントに onclick とか無いけどな
OnDoubleClick ならあるけど 余計な位置でクリック・ダブルクリックした時に
そのたんびに編集フォーム出るのを対策必要かな
違うイベントに関連付けた方がいいのかな

935 名前:デフォルトの名無しさん mailto:sage [2022/10/23(日) 16:22:22.37 ID:BP6ngYdb0.net]
まあワイだったら単純にするために、
セル(か行)を選ばせて、
ボタンではその値を参照してフォームに渡させるって感じで作るけどな
シートにオブジェクト何個も置くのはワイ的に無し

936 名前:デフォルトの名無しさん (ワッチョイ 05da-ze3V) [2022/10/23(日) 18:53:55.43 ID:WPTFsqfB0.net]
初心者は100ぐらい根性で書けばいいのだ



937 名前:デフォルトの名無しさん [2022/10/23(日) 20:53:35.93 ID:+izIRcqGM.net]
>>936
そのあと「これは効率が悪い」と気付いて修正するならいいけど、それしか考えられず500,1000と増やし続けているおじさんがウチの会社にいます。

938 名前:デフォルトの名無しさん [2022/10/23(日) 23:34:27.69 ID:3vnbJWYw0.net]
>>935
セルを選択させてボタンを押してその行の値をユーザーフォームに引き渡すの?

939 名前:デフォルトの名無しさん mailto:sage [2022/10/24(月) 03:27:38.59 ID:lrg5VPVy0.net]
(;・∀・)1000個やった。。プログラマはすげぇやって思ったけど効率いいやり方あるんか。

940 名前:デフォルトの名無しさん mailto:sage [2022/10/24(月) 06:08:08.92 ID:6AUN+j8g0.net]
似たような処理ならforでもdoでもいいから1000回ループさせればいいわいな

941 名前:デフォルトの名無しさん [2022/10/24(月) 11:49:03.56 ID:iXy6XZlxa.net]
動いているなら問題ないと思うよ

942 名前:デフォルトの名無しさん mailto:sage [2022/10/24(月) 20:02:23.15 ID:lrg5VPVy0.net]
時間できたら改修してみるわ

943 名前:デフォルトの名無しさん [2022/10/25(火) 13:18:15.56 ID:dMEmx1y0a.net]
問題なく動いているのを変に直してバグ入れる人よくいる

944 名前:デフォルトの名無しさん mailto:sage [2022/10/25(火) 14:05:40.72 ID:Awxzqqqu0.net]
ん?
俺の悪口やめろよ

945 名前:デフォルトの名無しさん [2022/10/25(火) 15:35:28.46 ID:zuyTceYk0.net]
wordVBAについて質問したいのですがここでも良いですか?
win10
2019版ですが、ページ番号5のページ全体を選択状態にしたいのですが、ググって見つかったrectangles(1)の手法は2019ではうまくいきません。
解説サイトがExcel VBAに比べてとても少ないので困っています。
ご存知のかたいませんでしょうか?

946 名前:デフォルトの名無しさん [2022/10/25(火) 15:37:35.82 ID:rYg1mhKw0.net]
>>945
死ねよ



947 名前:デフォルトの名無しさん mailto:sage [2022/10/25(火) 15:39:53.50 ID:PC01Ck0J0.net]
いや、あんたじゃないよ、おれの悪口だよ

948 名前:955 [2022/10/25(火) 15:48:40.06 ID:zuyTceYk0.net]
https://www.wordvbalab.com/code/3737/
ここで解決しました。

ルール違反だったようですみませんでした。

949 名前:デフォルトの名無しさん mailto:sage [2022/10/25(火) 17:07:14.74 ID:KrF65cxW0.net]
>>948
956が頭おかしいだけだから気にすんな

950 名前:デフォルトの名無しさん mailto:sage [2022/10/26(水) 01:53:51.72 ID:cEMR/QGK0.net]
今は死ねとか言っちゃいけないんだぞ!

951 名前:デフォルトの名無しさん [2022/10/26(水) 11:34:25.48 ID:gGo/2Fws0.net]
VBAのスレはこの今に存在するし、Excelって書いてあるのに無視して質問してる
更にはあまりにくだらないないようであるし
この手の連中はつけ上がるからな

952 名前:デフォルトの名無しさん (ワッチョイ 8201-yYWu) mailto:sage [2022/10/26(水) 14:36:09.42 ID:xzd5i3vP0.net]
なら誘導してやればいいだけだろ

VBAなんでも質問スレ Part3
https://mevius.5ch.net/test/read.cgi/tech/1631184381/

953 名前:デフォルトの名無しさん mailto:sage [2022/10/26(水) 19:48:54.22 ID:EO+J62QK0.net]
バカは死ななきゃ治らないそうですよ

954 名前:デフォルトの名無しさん mailto:sage [2022/10/26(水) 21:41:45.13 ID:Zi5ur2ypM.net]
>>953
それは残念でしたね

955 名前:デフォルトの名無しさん mailto:sage [2022/10/26(水) 22:17:58.40 ID:izoyFRHN0.net]
>>953
あっ・・・

956 名前:デフォルトの名無しさん [2022/10/28(金) 13:09:52.87 ID:KYP1+/DId.net]
Excel初心者です。
カレンダーから日付入力のアドインをチェックボックスを使って表示・非表示したいのですが可能ですか?
また、スクロールしても画面内の同じ位置に表示し続けることは可能ですか?
できればコードを教えてほしいです(*_ _)



957 名前:デフォルトの名無しさん mailto:sage [2022/10/28(金) 16:04:55.62 ID:OMbpfHro0.net]
おまいら親切すぎるんだわ
どんだけお人好しなんだ?

958 名前:デフォルトの名無しさん mailto:sage [2022/10/28(金) 16:17:16.47 ID:n9kqTWYK0.net]
>>957
って思うじゃん?
ここで回答すると、違っていた時やもっといい方法があるときに上乗せして回答される
すっげーいい勉強になるんだぜ

959 名前:デフォルトの名無しさん mailto:sage [2022/10/28(金) 18:37:43.76 ID:OMbpfHro0.net]
単にマウント取られてるんじゃなくて?

960 名前:デフォルトの名無しさん mailto:sage [2022/10/28(金) 19:20:57.49 ID:YuCy5lGNM.net]
マウント取られるならむしろ勉強になるだろ

961 名前:デフォルトの名無しさん mailto:sage [2022/10/28(金) 19:39:15.46 ID:sCscEEFEd.net]
優劣つけたがる奴多いけど
技術的な解決方法の話(こういう方法もあるぞ)だったらマウントいうのはおかしくないか?

962 名前:デフォルトの名無しさん mailto:sage [2022/10/28(金) 19:49:26.94 ID:xzhsh84s0.net]
質問に対しての回答例ならマウントという表現はおかしいと思うが
その後の雑談は確かにマウントの取り合いに見える

963 名前:デフォルトの名無しさん mailto:sage [2022/10/28(金) 20:29:32.46 ID:TnsRe9wR0.net]
僕が一番VBAをうまく使えるんだって言いたくなるのはわからなくはない

964 名前:デフォルトの名無しさん mailto:sage [2022/10/28(金) 20:42:13.46 ID:xzhsh84s0.net]
二位じゃ駄目なんですか

965 名前:デフォルトの名無しさん mailto:sage [2022/10/28(金) 21:17:01.84 ID:n9kqTWYK0.net]
>>959
頼むからマウント取ってください!
とにかく俺の上のスキルを見せて欲しい。なんでもしますから!

>>961
実際、確実に上って人はいくらでもいるよ

966 名前:デフォルトの名無しさん mailto:sage [2022/10/28(金) 21:23:26.29 ID:ZY9+XqOP0.net]
お前がぐちゃぐちゃ入ってないで解答教えてやれや
971がやきもきしてるぞ



967 名前:デフォルトの名無しさん mailto:sage [2022/10/29(土) 00:12:28.15 ID:LP1UZCi+0.net]
>>956
カレンダーアドインは使ったことないんでわからん
カレンダー程度なら自作できるので融通の利かないアドインは好かんのです

968 名前:デフォルトの名無しさん mailto:sage [2022/10/29(土) 02:12:02.06 ID:Q43C9b/9M.net]
汎用性のある日付入力カレンダーの自作は結構大変だろ
休日祝日の更新処理が面倒で自作はあきらめた

969 名前:デフォルトの名無しさん mailto:sage [2022/10/29(土) 07:19:37.14 ID:EvNBvM9mM.net]
>>968
最近使ってるが祝日はこれ使うと楽だぞ
https://excelapi.org/docs/datetime/holiday-list/

970 名前:デフォルトの名無しさん mailto:sage [2022/10/29(土) 07:56:20.37 ID:y8vo38aP0.net]
>>968
> 休日祝日の更新処理が面倒で自作はあきらめた
それ汎用性のある日付入力カレンダーでやることじゃないだろ...

971 名前:デフォルトの名無しさん mailto:sage [2022/10/29(土) 09:53:33.94 ID:WkAX7jzB0.net]
日数算出するの面倒いよな
うちの会社は祝日が全部休みじゃないし

972 名前:デフォルトの名無しさん mailto:sage [2022/10/29(土) 10:12:47.32 ID:S8npcbCXM.net]
結局、日付入力はカレンダー形式やめてテキストボックスとスピンボタンで適当に誤魔化した

973 名前:デフォルトの名無しさん mailto:sage [2022/10/29(土) 11:10:55.70 ID:zPpzpsf30.net]
>>956
アドインでは無くてユーザーフォーム作ってそこにボタン配置してシート上のセル操作ならやったことある
[BttnF] という名のユーザーフォームを呼び出すのに、A1セルにボタン [cmdBttnF] を配置(ウィンドウ枠の固定でA1はずっと表示してるから)

Private Sub cmdBttnF_click()
With BttnF
.StartUpPosition = 0
.Top = 100
.Left = 800
.Show vbModeless
End With
End Sub
これだけで、画面スクロールしてもシート上の同じ位置に居続けるし、もちろんフォーム掴んで動かし回してもいい ×で閉じることもできる
うっかり閉じても、又A1セルにあるボタン押せば表示できるし

974 名前:デフォルトの名無しさん mailto:sage [2022/10/29(土) 11:19:55.02 ID:LP1UZCi+0.net]
>>956
少しだけ補足すると、質問の文章がきちんと書かれていないので回答しにくい部分があって
EXCELのバージョンとカレンダーアドインについての情報がないので私の環境での説明では質問者のものと異なるかもしれない
アドインの表示/非表示はVisibleとかの表示関係のプロパティーは調べないのか
スクロール範囲は「ウインドウ枠の固定」かユーザーフォームとかが考えられるんじゃね

975 名前:デフォルトの名無しさん mailto:sage [2022/10/29(土) 14:34:50.58 ID:zPpzpsf30.net]
>>956 「カレンダーから日付入力」のアドインは個人用アドインに取り込まれて
毎回それをダイアログから追加するか貼り付けたまま使い続けるかの使用方法しかない様子
マクロの記録で一連の操作をしても望む動きしないし、ユーザーフォームに貼り付けるとか
コピペとかいろいろ試したけど、どれもできず断念
作者に交渉して「こういう使用方法したい」と改善依頼するしかないような 誰か他の案プリーズ

976 名前:デフォルトの名無しさん [2022/10/29(土) 17:02:02.57 ID:pObfyH4Kr.net]
初心者あるあるの後だし条件



977 名前:デフォルトの名無しさん [2022/10/29(土) 18:34:46.28 ID:XVu26ZuG0.net]
質問です。
VBAの処理の途中経過をログのようにコマンドプロンプトに表示させたいのですが、
どうすればよろしいでしょうか?
高速だと尚嬉しいです。

978 名前:デフォルトの名無しさん mailto:sage [2022/10/29(土) 19:12:37.96 ID:LP1UZCi+0.net]
>>977
表示だけならユーザーフォームにテキストボックス貼り付けるだけでいいんじゃね

979 名前:デフォルトの名無しさん (ワッチョイ 69cd-Tk+f) mailto:sage [2022/10/29(土) 22:00:56.05 ID:Ty5cM9IY0.net]
>>977
debug.printでイミディエイトウィンドウじゃだめなの?
フロートさせることもできるからわざわざコマンドプロンプトに投げなくてもいいと思う
https://i.imgur.com/yslLf52.png

980 名前:デフォルトの名無しさん [2022/10/29(土) 22:52:21.52 ID:XVu26ZuG0.net]
ありがとうございます。
フォームか、イミディエイトウィンドウを独立に出すのですね。
VBAを別のシステムから呼び出すのですが、エクセルをアクティブにしていなくても前面に出てきますでしょうか?

981 名前:デフォルトの名無しさん mailto:sage [2022/10/29(土) 23:18:52.58 ID:PRTnNeqn0.net]
別の、、システム?

982 名前:デフォルトの名無しさん [2022/10/29(土) 23:36:52.05 ID:pTxh4CzU0.net]
Pythonとかじゃね

983 名前:デフォルトの名無しさん mailto:sage [2022/10/29(土) 23:38:18.77 ID:epZm7Ut5M.net]
Excelを他のシステムから呼び出すならVBAではなくてOfficeアドイン(COMアドイン)

984 名前:デフォルトの名無しさん mailto:sage [2022/10/29(土) 23:45:53.72 ID:VMSbDQpEd.net]
そこまでの事するわりにここで質問するとかw

985 名前:デフォルトの名無しさん mailto:sage [2022/10/30(日) 01:27:01.53 ID:PMPwr2WR0.net]
すみませんいろいろとあるのですが、とりあえずイミディエイトウィンドウで試してみます

986 名前:デフォルトの名無しさん mailto:sage [2022/10/30(日) 03:01:55.11 ID:fzG7wj8e0.net]
よく分からんけど、VBSなら呼び出しも黒窓も両方できるぞ。



987 名前:デフォルトの名無しさん mailto:sage [2022/10/30(日) 08:52:03.88 ID:OaWd/xmf0.net]
>>986
コマンドラインプロンプトからvbs経由でエクセルのマクロ叩くのはいいけど、そのマクロからDebug.Print的なのを画面に書き出すのはどうやるの?マクロからテキストファイル開いてログを書き出す方法ならわかるけど

988 名前:デフォルトの名無しさん mailto:sage [2022/10/30(日) 10:19:47.96 ID:5A/AyQcT0.net]
ドラマや映画の中でよくある、でっかいマルチモニター複数枚に
犯人画像や防犯カメラ映像、それに並べてプロファイリングや位置情報やらの隅っこで
黒窓の中に意味不明な文字列がズラズラ流れてるような そんなのを作りたいんだと思う おれはつくりたい

989 名前:デフォルトの名無しさん (ワッチョイ 1901-Uvty) mailto:sage [2022/10/30(日) 10:52:42.98 ID:PMPwr2WR0.net]
>>988
イメージとしてはそうです。
ありがとうございます。
黒窓だとログっぽさが出て使う人がわかりやすいかなぁと思っていた次第です。
Microsoft同士なのに単純には出来ないんですね

990 名前:デフォルトの名無しさん mailto:sage [2022/10/30(日) 11:37:34.89 ID:LcJSLwmnd.net]
ログっぽさとかw
VBAだけでやろうとせずにPowershellでも使ってファイルに出力したログをずっと表示するような仕組みでいいんじゃないの
画面に流しても見逃したらログのいみなくね?

991 名前:1001 [Over 1000 Thread.net]
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 105日 4時間 30分 0秒

992 名前:デフォルトの名無しさん [2023/07/25(火) 15:40:42.48 ID:9LIYNDaoI]
要するに少子化対策ってのは本来て゛あれば孑なんか産んた゛ら遺棄罪で逮捕懲役にされるへ゛き貧乏人に孑を産ませようという遺棄の幇助だろ
男は6○代て゛も妊孕能あるが女はЗ○才で妊娠困難.ひと昔前なら女学校時代に孑を産んた゛り.許嫁がいたり,行き遅れとか言われたりと
女性の特性に合致した社会風土によって多くの子が作られていたわけた゛が.そんな大事な時期を資本家階級の家畜にする目的て゛,洗腦して
奇妙な社会的圧迫を加えて子を産めなくしてるのか゛最大原因た゛ろうに更に子供手当だのと憲法の下の平等すら無視した社會的歪みを加えて
余裕か゛あるから孑を作るという真っ当な家庭の孑が10萬のiPhone(笑)とか持ってて,私は買ってもらえないから始まって.公明党齋藤鉄夫
国土破壊省によるクソ航空騷音に勉強妨害されて精神的圧迫されて.路上で幸せそうな親孑に斬りつけた不幸JСみたいのを増やそうとか
奨学金ガ━なんてミ二バン飲酒運転して事故って死んでる某大生とか典型た゛か゛そいつらに遊ふ゛金くれてやることに何の意味か゛あるってんだか
やることなすことすへ゛てがてめえの私利私欲のために賄賂癒着してる資本家階級の利益を追求してるた゛けなのがハ゛レバレでキモチワルヰな

創価学會員は,何百万人も殺傷して損害を与えて私腹を肥やし続けて逮捕者まで出てる世界最悪の殺人腐敗組織公明党を
池田センセ━か゛ロをきけて容認するとか本気で思ってるとしたら侮辱にもほと゛か゛あるそ゛!
hТΤрs://i,imgur,сοm/hnli1ga.jpeg






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<265KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef