ExcelのVBAに関する質問スレです
コード書き込みや作成依頼もOK
※前スレ
Excel VBA 質問スレ Part56
http://mevius.5ch.net/test/read.cgi/tech/1534976724/
探検
Excel VBA 質問スレ Part57
レス数が900を超えています。1000を超えると表示できなくなるよ。
2018/09/10(月) 21:42:39.57ID:K1uuwFLt
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は動きが違うの?
846デフォルトの名無しさん
2018/11/02(金) 20:57:01.00ID:/dr4nYVn847デフォルトの名無しさん
2018/11/03(土) 00:21:42.99ID:N3tWJlln Excel2010でも試したけど、ループのないプロシージャで描けたよ
勿論ボタンのクリックイベントから
勿論ボタンのクリックイベントから
848デフォルトの名無しさん
2018/11/03(土) 00:44:19.57ID:N3tWJlln フォームコントロールに割り当てると描けないっぽい
ActiveXコントロールのイベントで呼べば描けるが
フォームコントロールって何のために有るんだろう・・・
ActiveXコントロールのイベントで呼べば描けるが
フォームコントロールって何のために有るんだろう・・・
849デフォルトの名無しさん
2018/11/03(土) 04:34:07.93ID:/0NNzwPk 任意のセルをコピーして所定の場所にペーストするマクロを作りたいです。
セルをコピーした状態からマクロ記録を取って、ペーストするだけのマクロを作ったのですがうまくいきません。
教えてください!
セルをコピーした状態からマクロ記録を取って、ペーストするだけのマクロを作ったのですがうまくいきません。
教えてください!
850デフォルトの名無しさん
2018/11/03(土) 06:28:54.02ID:5ShzkuEH >>848
VBAで作るフォームと処理を共有できる、とか?
VBAで作るフォームと処理を共有できる、とか?
851デフォルトの名無しさん
2018/11/03(土) 06:31:10.97ID:5ShzkuEH852デフォルトの名無しさん
2018/11/03(土) 06:39:13.96ID:IAxxklmh853デフォルトの名無しさん
2018/11/03(土) 11:31:29.48ID:/0NNzwPk >>851
Sub Macro5()
'
' Macro5 Macro
'
'
Range("AH11").Select
ActiveSheet.Paste
Application.CutCopyMode = False
End Sub
こんな感じです。これはセル1つ選択です。(最終的には複数選択してシート間でコピペする予定です)
Sub Macro5()
'
' Macro5 Macro
'
'
Range("AH11").Select
ActiveSheet.Paste
Application.CutCopyMode = False
End Sub
こんな感じです。これはセル1つ選択です。(最終的には複数選択してシート間でコピペする予定です)
854デフォルトの名無しさん
2018/11/03(土) 11:43:19.50ID:S6AysWL6 社名 金額 部門
================
A社 1000円 営業
A社 2000円 事務
A社 1500円 事務
A社 3000円 販売
B社 1500円 事務
B社 3500円 営業
C社 1000円 営業
C社 3000円 営業
C社 1500円 販売
D社 2000円 事務
こんな感じのA社⇒D社のように整列されたデータに対して
================
A社 1000円 営業
A社 2000円 事務
A社 1500円 事務
A社 3000円 販売
B社 1500円 事務
B社 3500円 営業
C社 1000円 営業
C社 3000円 営業
C社 1500円 販売
D社 2000円 事務
こんな感じのA社⇒D社のように整列されたデータに対して
855デフォルトの名無しさん
2018/11/03(土) 11:43:51.55ID:S6AysWL6 社名 金額 部門
================
A社 1000円 営業
A社 2000円 事務
A社 1500円 事務
A社 3000円 販売
A社 営業計 1000円 <
事務計 3500円 <
販売計 3000円 <
計 7500円 <
B社 1500円 事務
B社 3500円 営業
B社 営業計 3500円 <
事務計 1500円 <
計 5000円 <
C社 1000円 営業
C社 3000円 営業
C社 1500円 販売
C社 営業計 4000円 <
販売計 1500円 <
計 5500円 <
D社 2000円 事務
事務計 2000円 <
計 2000円 <
全社 営業計 8500円 <
事務計 7000円 <
販売計 4500円 <
計 20000円 <
こんな感じに行の間に小計、最後に合計を挿入するようなコードありますか?( < が追加行)
小計は必ず 営業、事務、販売の順番に並び、0円の場合は行自体挿入しません
実際ののデータは会社数、部門共に30以上あるので速度重視であれば望ましいです
================
A社 1000円 営業
A社 2000円 事務
A社 1500円 事務
A社 3000円 販売
A社 営業計 1000円 <
事務計 3500円 <
販売計 3000円 <
計 7500円 <
B社 1500円 事務
B社 3500円 営業
B社 営業計 3500円 <
事務計 1500円 <
計 5000円 <
C社 1000円 営業
C社 3000円 営業
C社 1500円 販売
C社 営業計 4000円 <
販売計 1500円 <
計 5500円 <
D社 2000円 事務
事務計 2000円 <
計 2000円 <
全社 営業計 8500円 <
事務計 7000円 <
販売計 4500円 <
計 20000円 <
こんな感じに行の間に小計、最後に合計を挿入するようなコードありますか?( < が追加行)
小計は必ず 営業、事務、販売の順番に並び、0円の場合は行自体挿入しません
実際ののデータは会社数、部門共に30以上あるので速度重視であれば望ましいです
856デフォルトの名無しさん
2018/11/03(土) 12:46:22.45ID:q2N3VeHV そんなもんExcelのグループ集計で一発
お前に必要なのはVBAではなくExcelの入門書
お前に必要なのはVBAではなくExcelの入門書
857デフォルトの名無しさん
2018/11/03(土) 13:03:36.46ID:3VcH/mb2 >>827
span使え
span使え
858デフォルトの名無しさん
2018/11/03(土) 13:12:27.13ID:78HW/kSp >>855
とりあえずピボットでググったら?
とりあえずピボットでググったら?
859デフォルトの名無しさん
2018/11/03(土) 13:18:18.27ID:3VcH/mb2 標準のエディタインライン展開できないとかsubの引数名自動で変えられないとかクソすぎ
誰かもっと開発しやすいやつをくれ
誰かもっと開発しやすいやつをくれ
860デフォルトの名無しさん
2018/11/03(土) 13:30:31.88ID:S6AysWL6 集計したい訳じゃなくデータを作成したいんだって
861デフォルトの名無しさん
2018/11/03(土) 13:33:02.71ID:N8ATSODS >>860
だからそれはグループ集計でできる
だからそれはグループ集計でできる
862デフォルトの名無しさん
2018/11/03(土) 13:38:02.57ID:S6AysWL6 VBAで作るには?
863デフォルトの名無しさん
2018/11/03(土) 13:47:38.58ID:N8ATSODS グループ集計の操作をマクロで記録するといいよ
864デフォルトの名無しさん
2018/11/03(土) 15:14:54.13ID:NeGXChns >>853
単にシート間で複数セルの値を同期させたいだけならそもそもクリップボードを経由しない方が早いのでは?
VBAでコピーしないでワークシート関数でシート間参照させるとか、コピー元のセルのValueプロパティなりFormulaプロパティなり、必ずコピーしなきゃいけないプロパティだけをコピー先のプロパティに直接代入するとか
ユーザーによるコピー操作そのものを再現しなきゃいけない理由でもあるの?
単にシート間で複数セルの値を同期させたいだけならそもそもクリップボードを経由しない方が早いのでは?
VBAでコピーしないでワークシート関数でシート間参照させるとか、コピー元のセルのValueプロパティなりFormulaプロパティなり、必ずコピーしなきゃいけないプロパティだけをコピー先のプロパティに直接代入するとか
ユーザーによるコピー操作そのものを再現しなきゃいけない理由でもあるの?
865デフォルトの名無しさん
2018/11/03(土) 18:06:58.76ID:/0NNzwPk >>864
シート間で照合するデータだとマクロ使わずできるのですが、
コピー元のシートのデータが大きいので、ペースト先のシートには必要なものだけを張り付けて、
印刷用のフォーマットに変換させて、終わったらペースト先のシートは保存せず元に戻すという操作をしたいと考えています。
お願いします。
シート間で照合するデータだとマクロ使わずできるのですが、
コピー元のシートのデータが大きいので、ペースト先のシートには必要なものだけを張り付けて、
印刷用のフォーマットに変換させて、終わったらペースト先のシートは保存せず元に戻すという操作をしたいと考えています。
お願いします。
866デフォルトの名無しさん
2018/11/03(土) 19:32:11.39ID:NeGXChns >>865
元データの書式や印刷用シートの体裁、印刷するデータの抽出方法などがわからないが、やりたいことからすると、Range.TextプロパティかValueプロパティの値をコピー先にそのままコピーするだけで良さそう
コピー元とコピー先のデータの体裁によっては、Range.AdvancedFilterメソッドで印刷用シートの方にフィルタ結果を出力するとかもできる
元データの書式や印刷用シートの体裁、印刷するデータの抽出方法などがわからないが、やりたいことからすると、Range.TextプロパティかValueプロパティの値をコピー先にそのままコピーするだけで良さそう
コピー元とコピー先のデータの体裁によっては、Range.AdvancedFilterメソッドで印刷用シートの方にフィルタ結果を出力するとかもできる
867デフォルトの名無しさん
2018/11/03(土) 22:51:34.85ID:MUI16VQU クラサバシステムを作るのは現実的なのでしょうか?
DBは相性からいってSQLServerで
DBは相性からいってSQLServerで
868デフォルトの名無しさん
2018/11/03(土) 22:58:31.43ID:zFR/cOIP >>867
Excelで作ろうとしてる理由が能力の問題なのか、それともExcelのワークシートの機能が必要だからなのか、それ次第だな
C#やVB.NETやJavaで作れる能力があるなら普通に作れるし、無いなら無理
能力が無いならAccessでも使ってろ
Excelで作ろうとしてる理由が能力の問題なのか、それともExcelのワークシートの機能が必要だからなのか、それ次第だな
C#やVB.NETやJavaで作れる能力があるなら普通に作れるし、無いなら無理
能力が無いならAccessでも使ってろ
869デフォルトの名無しさん
2018/11/03(土) 23:03:55.31ID:e+FwThFa 能力の問題なら今ならOffice365のPowerAppsおすすめ
たぶん>>867が手作りするより遥かに高品質なものが一瞬で作れるよ
たぶん>>867が手作りするより遥かに高品質なものが一瞬で作れるよ
870デフォルトの名無しさん
2018/11/03(土) 23:12:01.99ID:MUI16VQU 作りたいのは、Activitiのエンジンを使ったWFシステムです
Excelで検討する理由は、ADによるシートとセルの権限管理ですかね
Excelで検討する理由は、ADによるシートとセルの権限管理ですかね
871デフォルトの名無しさん
2018/11/04(日) 00:03:26.74ID:Ujv6OCQm いやクラサバだったら権限管理はSQL Server側でやるもんだろ
当然、SQL Serverなら問題なくADで制御できる
その調子じゃ厳しそうだね
当然、SQL Serverなら問題なくADで制御できる
その調子じゃ厳しそうだね
872デフォルトの名無しさん
2018/11/04(日) 00:32:40.13ID:xCAdckZO Excelのレベルで権限制御したところで、別のExcelシート作ってデータソース参照するだけでやりたい放題やで
Excelに限った話ではなくC#などでクライアント作る場合でも同じことで、プロなら絶対にありえない設計
Excelに限った話ではなくC#などでクライアント作る場合でも同じことで、プロなら絶対にありえない設計
873デフォルトの名無しさん
2018/11/04(日) 07:35:57.46ID:dL+sv/7f ここで板違いの質問を堂々とするレベルなんだから w
874デフォルトの名無しさん
2018/11/05(月) 12:48:07.93ID:g2XKp1gu またプロさんイキっとるのw
875デフォルトの名無しさん
2018/11/05(月) 23:37:43.98ID:Vz2xlIAK >>866
Range.Textプロパティ、Valueプロパティが良く理解できなくて困ってます。
セルの指定で合ってますか?
コピー元の表の中からから1行(5セル分)コピーして、隣のシートの所定の位置に貼り付けたいです。
1行選択した後、マクロ起動させて隣のシートに張付けという操作です。頼みます、教えてください!
Range.Textプロパティ、Valueプロパティが良く理解できなくて困ってます。
セルの指定で合ってますか?
コピー元の表の中からから1行(5セル分)コピーして、隣のシートの所定の位置に貼り付けたいです。
1行選択した後、マクロ起動させて隣のシートに張付けという操作です。頼みます、教えてください!
876デフォルトの名無しさん
2018/11/06(火) 00:56:10.22ID:bmwIjcqH >>875
Sub CopyToPrintForm()
ThisWorkbook.Worksheets("データ用シート名").Range("コピー元セルの行番号:コピー元セルの行番号").Copy Destination:= ThisWorkbook.Worksheets("印刷用シート名").Range("コピー先セルの行番号:コピー先セルの行番号")
End Sub
Sub CopyToPrintForm()
ThisWorkbook.Worksheets("データ用シート名").Range("コピー元セルの行番号:コピー元セルの行番号").Copy Destination:= ThisWorkbook.Worksheets("印刷用シート名").Range("コピー先セルの行番号:コピー先セルの行番号")
End Sub
877デフォルトの名無しさん
2018/11/06(火) 01:09:36.50ID:bmwIjcqH878デフォルトの名無しさん
2018/11/06(火) 01:38:13.14ID:ca/fCdtD879デフォルトの名無しさん
2018/11/06(火) 02:06:44.79ID:hX39oSae 教えてください!とか言ってるから荒しかと思ってたがガチか
880デフォルトの名無しさん
2018/11/06(火) 02:42:45.06ID:hX39oSae >>865
>ペースト先のシートは保存せず元に戻す
マクロを実行すると「元に戻す」は使えなくなるから、一々開きなおさないといけないけど大丈夫なのかな
もしその作業が連続して行われるなら、テンプレート用シートと印刷用シートを別に用意した方が楽な気がする
>ペースト先のシートは保存せず元に戻す
マクロを実行すると「元に戻す」は使えなくなるから、一々開きなおさないといけないけど大丈夫なのかな
もしその作業が連続して行われるなら、テンプレート用シートと印刷用シートを別に用意した方が楽な気がする
881デフォルトの名無しさん
2018/11/06(火) 06:33:12.72ID:ca/fCdtD882デフォルトの名無しさん
2018/11/06(火) 07:50:07.02ID:hqcuocq7 >>878
引数付きでCopyメソッドを実行するときはPasteメソッドは書かなくていい
引数付きでCopyメソッドを実行するときはPasteメソッドは書かなくていい
883デフォルトの名無しさん
2018/11/06(火) 08:01:03.35ID:hqcuocq7 >>881
印刷用シートはデータと切り離してテンプレート用の別のファイルにした方が良い
そうすれば、印刷処理のとき一時的にテンプレートから印刷用フォーマットを書き起こした後、印刷用フォーマットのブックを削除するだけで済む
印刷後に印刷用シートを初期化するマクロを更に走らせるなんて、手間を増やしてるだけだと思うぞ
印刷用シートはデータと切り離してテンプレート用の別のファイルにした方が良い
そうすれば、印刷処理のとき一時的にテンプレートから印刷用フォーマットを書き起こした後、印刷用フォーマットのブックを削除するだけで済む
印刷後に印刷用シートを初期化するマクロを更に走らせるなんて、手間を増やしてるだけだと思うぞ
884デフォルトの名無しさん
2018/11/06(火) 19:36:10.55ID:gYvutDKX 複数端末で使用しているマクロがあります
端末aのデスクトップに目当てのファイルがあり、他の端末はネットワークで繫がっている端末aのデスクトップを覗きに行く感じになってます
ファイルパス & filenameで参照したいんですがどのように書くべきなんでしょうか
端末aのデスクトップに目当てのファイルがあり、他の端末はネットワークで繫がっている端末aのデスクトップを覗きに行く感じになってます
ファイルパス & filenameで参照したいんですがどのように書くべきなんでしょうか
885デフォルトの名無しさん
2018/11/06(火) 19:50:54.72ID:S8pHBi6C886875
2018/11/06(火) 19:57:59.09ID:ca/fCdtD みなさんありがとうございます。自分のイメージしてたものが100%出来ました。
887デフォルトの名無しさん
2018/11/06(火) 22:30:23.08ID:hKUAUjlF VBAベーシックの資格取得がてら基本情報の午後問対策にしようと思ってるんですけど出題範囲とかレベル感的に同じくらいですかね?
888デフォルトの名無しさん
2018/11/07(水) 10:26:42.01ID:d5oBs1zX VBAの資格って新しくできたのか?
889デフォルトの名無しさん
2018/11/07(水) 10:35:52.33ID:XvVrOgoe890デフォルトの名無しさん
2018/11/07(水) 10:44:51.43ID:t8cEHMAy891デフォルトの名無しさん
2018/11/07(水) 10:53:48.53ID:XvVrOgoe >>890
端末aのフォルダを共有設定にしておかないとアクセスできない
共有になってれば、どのPCでもアクセスできる
エクスプローラーで共有フォルダを開いて、アドレスバーをコピペしてみると書き方が分かる
端末aのフォルダを共有設定にしておかないとアクセスできない
共有になってれば、どのPCでもアクセスできる
エクスプローラーで共有フォルダを開いて、アドレスバーをコピペしてみると書き方が分かる
892デフォルトの名無しさん
2018/11/07(水) 11:32:15.04ID:nZWGaJPv 会社なのに共有フォルダはないの?
893デフォルトの名無しさん
2018/11/07(水) 11:34:31.05ID:+HyKX3eQ894875
2018/11/07(水) 20:36:23.84ID:TW51zyDp マクロ起動でシートの切り変わりで画面がブレるというか、もう少しスムーズに動いて欲しいと感じます。
1行まるごとコピーしているので重いのでしょうか?
1行まるごとコピーしているので重いのでしょうか?
895デフォルトの名無しさん
2018/11/07(水) 22:08:04.86ID:Qojc5OuV 配列に入れるとか?
dim a
a = sheet1.Range("コピーしたい範囲")
sheet2.Range("sheet1と同じ大きさ") = a
シート切り替える必要あんの?
dim a
a = sheet1.Range("コピーしたい範囲")
sheet2.Range("sheet1と同じ大きさ") = a
シート切り替える必要あんの?
896デフォルトの名無しさん
2018/11/07(水) 23:56:50.98ID:kdSj6Mns text.txtの中身
1,"my name is taro"
2,""hello,world""
3,"hello,world"
これをエクセルに変換して期待値は以下としたい
どうしたらいい?
A B
1 my name is taro
2 "hello,world"
3 hello,world
1,"my name is taro"
2,""hello,world""
3,"hello,world"
これをエクセルに変換して期待値は以下としたい
どうしたらいい?
A B
1 my name is taro
2 "hello,world"
3 hello,world
897デフォルトの名無しさん
2018/11/07(水) 23:58:12.32ID:Z9bNZaPm 拡張子を.csvに変えてダブルクリックしてみよう
あら不思議!
あら不思議!
898デフォルトの名無しさん
2018/11/08(木) 00:00:20.32ID:+1CERcyT ちなみに拡張子をcsvにすると以下のような変な出力になる。
A B C
1 my name is taro
2 hello world""
3 hello,world
A B C
1 my name is taro
2 hello world""
3 hello,world
899デフォルトの名無しさん
2018/11/08(木) 00:02:21.00ID:M68F6j6d "が一個足りない
csvで"をインポートするには
"を""にして
"でくくらないといけない
csvで"をインポートするには
"を""にして
"でくくらないといけない
900デフォルトの名無しさん
2018/11/08(木) 00:10:13.02ID:+1CERcyT 手順としては以下でよいか?
1. test.txtの中身を置換で「""」にマッチする箇所を「"""」として保存する
2. 拡張子をcsvにする。
期待値になったのでよしとする。
さらに一歩質問いいですか?
1. test.txtの中身を置換で「""」にマッチする箇所を「"""」として保存する
2. 拡張子をcsvにする。
期待値になったのでよしとする。
さらに一歩質問いいですか?
901デフォルトの名無しさん
2018/11/08(木) 00:19:54.15ID:+1CERcyT test.txtの中身
1,"my name
is taro"
2,"""hello,world"""
3,"hello,world"
これをエクセルにして期待値として以下としたい
A B
1 (※)
2 "hello,world"
3 hello,world
B1セル内に
my name
is taro
が格納され、適切に改行が入っていることを期待。
が、csvにしたら、ちゃんと期待値になってた。。
んー、、途中で改行が入るケースではまってた記憶があったんだが、、、、。これでよしとするか。。
1,"my name
is taro"
2,"""hello,world"""
3,"hello,world"
これをエクセルにして期待値として以下としたい
A B
1 (※)
2 "hello,world"
3 hello,world
B1セル内に
my name
is taro
が格納され、適切に改行が入っていることを期待。
が、csvにしたら、ちゃんと期待値になってた。。
んー、、途中で改行が入るケースではまってた記憶があったんだが、、、、。これでよしとするか。。
902デフォルトの名無しさん
2018/11/08(木) 00:35:58.02ID:+1CERcyT ああ、思い出した
"がつかないケースで、改行が入っている場合
test.txtの中身
1,my name
is taro
エクセルにして期待値として以下としたい
A B
1 (※)
(※)
B1セル内に
my name
is taro
が格納され、適切に改行が入っていることを期待。
拡張子をcsvに置き換える前に、"で囲むようにすればいいが、置換でなんとかならないものか。
"がつかないケースで、改行が入っている場合
test.txtの中身
1,my name
is taro
エクセルにして期待値として以下としたい
A B
1 (※)
(※)
B1セル内に
my name
is taro
が格納され、適切に改行が入っていることを期待。
拡張子をcsvに置き換える前に、"で囲むようにすればいいが、置換でなんとかならないものか。
903デフォルトの名無しさん
2018/11/08(木) 01:33:19.87ID:QHwNiY6E904デフォルトの名無しさん
2018/11/08(木) 07:54:15.59ID:u+iZKjOm なんかもう最初のカンマまでの文字数だけ切り取るほうがシンプルなんじゃ
905デフォルトの名無しさん
2018/11/08(木) 11:52:01.74ID:rWQT8E4I excelの3Dグラフで陰線処理ってできますか?
906デフォルトの名無しさん
2018/11/08(木) 12:05:03.88ID:Yck2Cb0Y 陰毛処理?
907デフォルトの名無しさん
2018/11/08(木) 14:33:21.43ID:3qqw0Iqx >>895
それのどこに配列が絡んでるんですかね?
それのどこに配列が絡んでるんですかね?
レス数が900を超えています。1000を超えると表示できなくなるよ。
ニュース
- 自民・麻生太郎 副総裁 石破政権の1年は「どよーん」 高市政権の発足で「何となく明るくなった」「世の中のことが決まり動いている」 [Hitzeschleier★]
- 東京都「都民の税金1.5兆円が国に奪われている」「全国に分配されている」に地方民ブチギレ [Hitzeschleier★]
- JA全農が「新おこめ券」…来年9月末の有効期限を新設、必要経費のみ上乗せ [蚤の市★]
- 【27歳会社員】「自慰行為に使うために」コインランドリーの乾燥機から24歳女性の下着など計11点(時価8万2080円相当)盗んだ疑い [nita★]
- 【おこめ券】鈴木憲和農相 小泉前農相の備蓄米放出を“反省”「備蓄の円滑な運営を図ってまいります」 [Hitzeschleier★]
- 1人3千円の食品高騰対策、何に使える? あいまいなまま衆院通過 [蚤の市★]
- 【実況】博衣こよりのえちえちダンガンロンパ2🧪★3
- 麻生太郎が石破政権の1年を酷評「どよーんとして何も動かない感じだったな。それに引き換え高市政権は物事が動いている」 [597533159]
- 立民議員「金融市場が不安定なのに成長が大事って…恐ろしいよ」高市早苗「誇張するな!マーケットが過剰反応するだろうが」え? [163661708]
- 【速報】室井佑月、米山隆一との離婚を決意wwwwwwwwwwwwwwwwwwww [802034645]
- 【実況】博衣こよりのえちえちダンガンロンパ2🧪★4
- 官僚「台湾有事についての質問か、『政府として逐一答えない』と…(カタカタカタ)」高市「私1人で答弁できるわよ!」 [972432215]
