advanced help
per page, with , order by , clip by
Results of 1 - 1 of about 3681 for グラフ (0.002 sec.)
[[20191017132931]]
#score: 3274
@digest: 1d3c6e2bfa21b0aa9a96c4a0dcb5a355
@id: 81085
@mdate: 2019-10-18T03:48:17Z
@size: 12638
@type: text/plain
#keywords: フ. (121354), 理図 (60290), 列備 (59603), フ管 (56043), フcp (54875), 列グ (51108), 性= (41426), 列no (40356), 性列 (40061), 横個 (39542), 程能 (37560), 値pu (37191), 度数 (36043), 特性 (33970), 列cp (33384), 列評 (31932), フsh (29010), 考= (24901), ヒス (23023), 均= (20723), 図グ (20237), 選定 (17701), public (17210), 価= (14465), ラフ (14341), グラ (14271), 規格 (13905), タ. (12370), sht (10542), 備考 (10244), 時系 (9774), 測定 (8673)
『過去のエクセルファイルのマクロコードがVBAで表示されない』(める)
お世話になっております 10年以上前に作成されメンテナンスされていないエクセルファイルがあります 表にデータを入力してヒストグラムを作成するマクロが組んであるようですが 2016の仕様では意図した通りに表示できないみたいです マクロの編集(Alt+F8)ではマクロはブックの中に存在するようですが VBAで編集しようとするとコードの記述がない状態に遭遇しました 2003年、あるいはそれ以前のエクセルファイルのマクロ用コードは 何か特殊な書き方とかされていたのでしょうか? 基本的にエクセルファイルは下位互換があるはずなので勝手に消えてしまうってことはないような気がするんですが・・・ 現在のVer.で新しく同じ動作をするマクロ組んじゃった方が早いでしょうかね? < 使用 Excel:Office365、使用 OS:Windows10 > ---- マクロ編集画面左側のツリーに「VBAProject」とあるかと思いますが、これをダブルクリックするとどうなるでしょう? VBAプロジェクトはパスワードを付けて中身を見せなくする事ができます。ダブルクリックでパスワードを聞いてくるようならば、コードは隠されています。 元の作成者からパスワードを聞き出してください。(ハッキングする方法はありますが、やって良いかの判断は必要) パスワードが判れば、「VBAProject」を右クリックし、「プロパティ」-「保護」でパスワードを外すこともできるようになります。 パスワードがかかっていないならば、マクロはブックの中ではなく、「個人用マクロブック」、つまり別ブックの中に書いたとか?(マクロの記録機能を使った場合、どっちに保存するか選択できます) (???) 2019/10/17(木) 14:00 ---- 数値データを入力していない原紙扱いのファイルを開きVBAを呼び出すと こんなコードしかなかったのでこれは個人用マクロブックから呼び出していたか コードが消失したかのどちらかでしょうかね(古いコードの記述が消えるってあり得るのかな?w) 2000年より前に作られたものらしいので、ヒストグラムを生成するマクロではなく 普通に2016の機能にあるグラフツールから自動的にヒストグラムを作成するように 作り直した方が早そうですね Sub 工程能力() 選定Cpグラフ 初期設定 工程能力メイン 列配置 If 実行 <> "異常" Then 罫線 End Sub Sub 工程能力時系列() 選定Cp管理図グラフ 初期設定 工程能力メイン 時系列グラフ追加 列配置 罫線 End Sub Sub 時系列グラフ() 選定管理図グラフ 初期設定 時系列グラフ単独 列配置 罫線 End Sub Sub 列配置() Shtグラフ.Columns(列No).HorizontalAlignment = xlCenter Shtグラフ.Columns(列平均).HorizontalAlignment = xlCenter Shtグラフ.Columns(列σ).HorizontalAlignment = xlCenter Shtグラフ.Columns(列Cp).HorizontalAlignment = xlCenter Shtグラフ.Columns(列評価).HorizontalAlignment = xlCenter End Sub Sub 罫線() With Shtグラフ.Range(Shtグラフ.Cells(G記入開始行, 列No), _ Shtグラフ.Cells(行位置, 列備考)) .Borders(xlLeft).Weight = xlThin .Borders(xlRight).Weight = xlThin .Borders(xlTop).Weight = xlThin .Borders(xlBottom).Weight = xlThin .BorderAround Weight:=xlMedium End With If 横個数 > 1 Then With Shtグラフ.Range(Shtグラフ.Cells(G記入開始行, 列No + (横個数 - 1) * 列備考), _ Shtグラフ.Cells(行位置, 列備考 + (横個数 - 1) * 列備考)) .Borders(xlLeft).Weight = xlThin .Borders(xlRight).Weight = xlThin .Borders(xlTop).Weight = xlThin .Borders(xlBottom).Weight = xlThin .BorderAround Weight:=xlMedium End With End If End Sub (める) 2019/10/17(木) 14:18 ---- パスワードはかかっていないようですね。 ならば、例えば「選定Cpグラフ」の部分にカーソルを合わせておいて、Shift+F2キーを押してみてください。 呼び出しているプロシジャの実体に飛ぶことができるので、同じプロジェクト内にコードが書かれていれば表示されるはずです。(余談ながら、飛び先でCtrl+Shift+F2を押すと、元の行に戻る) シートモジュールと標準モジュールに、バラバラにプロシジャを置いているだけでは? 共通部分は標準モジュールで、シート固有はシートモジュールに書く、というのは、みんなやっている事です。 (???) 2019/10/17(木) 14:25 ---- こんな記述が出てきました Option Explicit '-------名前の定義「データ表」の縦位置--- Public Const CdNo = 5, Cd品番 = 6, Cd品名 = 7, Cd特性 = 8, Cd規格 = 9 Public Const Cd規格上限 = 10, Cd規格下限 = 11, C実行 = 12 Public Const Cdデータ開始 = 14 '-------グラフ Public Const G記入開始行 = 5, G1No = 1, G1特性 = 2, G1グラフCp = 3, G1平均 = 4, G1σ = 5, G1Cp = 6, _ G1評価 = 7, G1備考 = 8 Public Const G2No = 1, G2特性 = 2, G2グラフ管理図 = 3, G2平均 = 4, G2σ = 5, G2Cp = 6, _ G2評価 = 7, G2備考 = 8 Public Const G3No = 1, G3特性 = 2, G3グラフ管理図 = 3, G3グラフCp = 4, G3平均 = 5, G3σ = 6, G3Cp = 7, _ G3評価 = 8, G3備考 = 9 '-------名前の定義「度数データ」の縦位置--- Public Const C度数品番 = 3, C度数品名 = 4, C度数特性 = 5, C度数規格 = 6, C度数上限 = 7, C度数下限 = 8, _ C度数N数 = 9, C度数平均値 = 10, C度数Cp = 11, C度数Cpk = 12, _ C度数標準偏差 = 13, C度数最大値 = 14, C度数最小値 = 15, C度数判定 = 16, C度数級幅開始 = 18 '-------------------------------------- Public Const C_MAX_級数 = 100 '級数の配列最大値 Public Const C_級文字数 = 3 '級の文字数が3以下の場合,○〜○表示 Public Const C_級文字数_多 = 5 '級の文字数が3以下の場合,○〜表示,6以上は中央値表示 Public Const CC行開始位置 = 5 '文字の縦側 貼り付け位置 '-------用紙の設定--------------- Public 横個数 As Integer 'グラグの横方向の貼り付け個数 Public 列位置(4) As Integer '文字の横側 貼り付け位置 '--------------------------------------- Public Shtデータ As Object Public Sht度数表 As Object Public Shtグラフ As Object Public Sht基準グラフ As Object Public グラフShtNo As Integer 'Cpグラフ:1 管理図グラフ:2 Cp管理図グラフ:3 Public Gf修正 As Integer 'グラフを貼り付けでなく、修正する場合「true Public PltエリアL As Single 'グラフの左位置 Public PltエリアW As Single 'グラフの幅 Public Plt_Y軸 As Single 'グラフのY軸位置 Public 矢平均位置Lft As Single 'グラフの平均値の矢印左位置 Public 矢平均位置Wdh As Single 'グラフの平均値の矢印右位置 Public Txt平均値Wdh As Single 'グラフの平均値の幅」 Public 済の有無 As Integer 'データ表に済がある時は修正モードにする '-------変数名--------------- Public 測定値() As Double '測定データ Public N数 As Integer '測定データ数 Public 最大値 '測定データ最大値 Public 最小値 '測定データ最小値 Public 平均値 '測定データ最小値 Public 標準偏差 '標準偏差 Public Cp '工程能力指数 Public Cpk '工程能力指数 Public 判定 As String Public 上限規格 '規格の上限値 Public 下限規格 '規格の下限値 Public 規格種別 As String '両:両側規格、上:上限規格、下:下限規格 Public 級数 As Integer '度数表の級数 Public 特性数 As Integer ' データの特性数 Public 特性No As Integer '現在処理中の特性項目 Public 特性列No As Integer '現在処理中の特性列No Public 特性列No2 As Integer Public 測定桁 As Integer '測定単位の桁数(マイナスは小数点) Public 実行 As String '実行済みのデータか 'Public is級幅Dlg As Boolean Public 列No As Integer Public 列特性 As Integer Public 列グラフ管理図 As Integer Public 列グラフCp As Integer Public 列平均 As Integer Public 列σ As Integer Public 列Cp As Integer Public 列評価 As Integer Public 列備考 As Integer Sub 選定Cpグラフ() グラフShtNo = 1 End Sub Sub 選定管理図グラフ() グラフShtNo = 2 End Sub Sub 選定Cp管理図グラフ() グラフShtNo = 3 End Sub Sub 初期設定() Set Shtデータ = Sheets("データ") Set Sht度数表 = Sheets("度数") Set Sht基準グラフ = Sheets("基準グラフ") Select Case グラフShtNo Case 1 Set Shtグラフ = Sheets("Cpグラフ") 列No = G1No 列特性 = G1特性 列グラフ管理図 = 0 列グラフCp = G1グラフCp 列平均 = G1平均 列σ = G1σ 列Cp = G1Cp 列評価 = G1評価 列備考 = G1備考 Case 2 Set Shtグラフ = Sheets("時系列グラフ") 列No = G2No 列特性 = G2特性 列グラフ管理図 = G2グラフ管理図 列グラフCp = 0 列平均 = G2平均 列σ = G2σ 列Cp = G2Cp 列評価 = G2評価 列備考 = G2備考 Case Else Set Shtグラフ = Sheets("Cp時系列グラフ") 列No = G3No 列特性 = G3特性 列グラフ管理図 = G3グラフ管理図 列グラフCp = G3グラフCp 列平均 = G3平均 列σ = G3σ 列Cp = G3Cp 列評価 = G3評価 列備考 = G3備考 End Select End Sub Sub クリアデータ() Dim 最終行 As Integer Dim 最終列 As Integer Set Shtデータ = Sheets("データ") 最終行 = Shtデータ.UsedRange.Rows.Count 最終列 = Shtデータ.UsedRange.Columns.Count Shtデータ.Range(Shtデータ.Cells(Cd品番, 3), Shtデータ.Cells(C実行, 最終列)).ClearContents Shtデータ.Range(Shtデータ.Cells(Cdデータ開始, 3), Shtデータ.Cells(最終行, 最終列)).ClearContents End Sub '========Sheetグラフの記入箇所をクリア Sub クリアグラフ() Dim 最終行 As Integer Shtグラフ.Select ActiveSheet.DrawingObjects.Delete 'グラフをクリア 最終行 = Shtグラフ.UsedRange.Rows.Count Range(Shtグラフ.Rows(G記入開始行), Shtグラフ.Rows(最終行)).ClearContents End Sub '========Sheetグラフの記入箇所をクリア Sub クリア度数() Dim 最終行 As Integer 最終行 = Sht度数表.UsedRange.Rows.Count Sht度数表.Range(Sht度数表.Rows(C度数級幅開始), Sht度数表.Rows(最終行)).ClearContents End Sub '======用紙選択 Sub 用紙() 横個数 = 1 If Shtデータ.OptionButtons("OptA4").Value = xlOn Then '用紙A4 Shtグラフ.Range(Shtグラフ.Columns(列No + 列備考), Shtグラフ.Columns(列備考 * 2)).ClearContents On Error Resume Next Shtグラフ.PageSetup.PaperSize = xlPaperA4 Else '用紙A3 Shtグラフ.Range(Shtグラフ.Columns(列No), Shtグラフ.Columns(列備考)).Select Selection.Copy Shtグラフ.Cells(1, 列No + 列備考).Select Shtグラフ.Paste Shtグラフ.Cells(1, 1).Select Shtグラフ.Cells(1, 列No + 1).Value = "" 横個数 = 2 On Error Resume Next Shtグラフ.PageSetup.PaperSize = xlPaperA3 End If On Error GoTo 0 End Sub モジュールの中にはMdl0初期設定、Mdl1メイン、と訳8個のモジュールがありました 使ったことのない記述ばかりで目をぱちくりしております・・・ (める) 2019/10/17(木) 14:46 ---- 因みに、このエクセルファイルの問題点というか困っている現象ですが ボタンを押してマクロを実行した際、ヒストグラムではなく折れ線グラフになってしまうこと マクロ実行前の昔のデータ表示の場合データ内には規格内の数値しか入っていないにもかかわらず 規格範囲外の数値が表示されてしまう、という現象です。 未知の領域でビビッておりますがよろしくご教授願います (める) 2019/10/17(木) 14:57 ---- いっぱい出てきましたね。 標準モジュール複数に分けてたのですね。 コードが長いので追いかける気はしませんが、要所にブレークポイントを設定しておいて実行してみるとか、ステップ実行してみて、コードを理解するしかないでしょうね。 ただ、グラフの種類を変えてはいないようなので、貼ってあるグラフを右クリックし、「グラフの種類を変更」してみてはどうでしょうか。 (???) 2019/10/17(木) 18:09 ---- グラフの種類の変更は試したのですが ヒストグラムを選ぼうとすると複合グラフにできないグラフの種類があります と表示されてしまいます どうやら定年退社なさったこのマクロの作成者はとても 専門的でプロフェッショナルな方だったようです・・・ 画像編集するソフトをプログラミングできるほどの腕だったらしい と言われて理解が追いつくかどうか怖いです、ですが頑張ってみます このマクロがきちんと作動してくれれば業務の効率がかなり上がりますのでやる価値はあるようです 参考までに画像をアップしてみましたのでもし気が付いたことがありましたら教えて下さい。 https://filestore.community.support.microsoft.com/api/images/ddbf8423-5b16-425e-b0e4-998da2dee6b6?upload=true (める) 2019/10/18(金) 08:40 ---- 仮データを入れてVBAを見ながら少しづつ進めた所、基本的には問題となる動きはなさそうでした 折れ線グラフになるのは工程能力ではなく時系列に対するものだったので ヒストグラムが折れ線になっているわけではなさそうです ということは元となるグラフに問題があるのと 私のヒストグラムに対する理解度が足りない気がしてきてきました Excel2016以前のExcelではどうやってヒストグラムを作っていたのか 勉強してこのマクロを理解していきたいと思います (正直な所マクロ作る人間はこのファイルの使い方みたいな解説書なりreadmeなり 残すべきなんじゃないかなぁと思いました) (める) 2019/10/18(金) 12:48 ...
http://www.excel.studio-kazu.jp/wiki/kazuwiki/201910/20191017132931.txt - [detail] - similar
PREV NEXT
Powered by Hyper Estraier 1.4.13, with 96861 documents and 607997 words.

訪問者:カウンタValid HTML 4.01 Transitional