• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Word VBA 多角形の描画でエラー)

Word VBA 多角形の描画でエラー

このQ&Aのポイント
  • Word VBAで四角形を描画する際のエラーについて
  • 隣接するノード間の距離が0.075ポイント未満ではエラーになる
  • Word 2002以降でも同様のエラーが発生するか

質問者が選んだベストアンサー

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.1

>最近のバージョンでも同じことでしょうか。 2007までのワードでエラーが再現しましたが、2010で問題ありませんでした。

krmr
質問者

お礼

早速の回答ありがとうございます。 そうすると、2010以降のバージョンに乗り換えた方がよさそうですね。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • Scilabを使ったジュリア集合の描画プログラム

    今、Scilabを使用してジュリア集合(充填およびそれ以外を含む集合)を描画するプログラムを書いています。 以前書いたC言語のプログラムをもとに書いているのですが、正確に描画できません。どうしたらよいでしょうか。教えてください。 与える条件は右上と左下の座標(複素数形式)と定数Cの値です。 以下に掲載したのが製作したプログラムです。 よろしくお願い致します。 //描画エリアの右上と左下の座標を複素数で設定する Z =[ -1.2-1.2*%i;1.2+1.2*%i]; //複素定数(C)を設定する C=0+0*%i; //描画エリアのx座標とy座標の各最小値と最大値を計算する。 xmin = min(real(Z)); xmax = max(real(Z)); ymin = min(imag(Z)); ymax = max(imag(Z)); Cr = real(C); Ci = imag(C); //描画点数を800×800に設定する。 N = 800; //各増分を計算する。 dx = (xmax-xmin)/(N-1); dy = (ymax-ymin)/(1-N); //プロットデータを"0"で初期化 map=zeros(N,N); //ジュリア集合の描画 i=1; for X=xmin:dx:xmax j=1; for Y=ymax:dy:ymin for k=1:30 x = X ^ 2 - Y ^ 2 + Cr; y = 2 * X * Y +Ci; if x^2 +y^2 > 4 then break; end map(j,i)=k; X=x; Y=y; end j=j+1; end i=i+1; end //プロットするための設定 Re = xmin:dx:xmax; Im = ymax:dy:ymin; clf(0); Sgrayplot(Re,Im,map');

  • ノード間の距離に基づいて描画するソフトはありますか

    ノード間の距離に基づいて2次平面上に各ノードを配置して描画するようなソフトまたはアルゴリズムはありますか。 例えば今3つのノードA、B、Cがあってそれぞれの距離を、AからB=2、BからC=4、AからC=0とすると、 A--B----Cと画面に描画してくれるようなアプリです(添付の図参照)。ノードが3つ程度なら人手でできますが、ノードが10個以上になると、ノード間の関係は45(2つノードの組み合わせ数)以上になるので、人がいちいち判断して描画するのは面倒です。そこでアプリで自動解析して描画してくれるようなものがほしいのですが中々見つかりません。 できればフリーソフトがほしいのですが、有料ソフトあるいは、自分でプログラムを作る前提でアルゴリズムを教えていただきたいのですが、どなたかご存知ですか。因みにWindows8で動くソフトを希望です。

  • VBA Graph描画でのマーカ設定

    EXCELのVBAでGraphを描画します。 下記設定で Dim objChart As ChartObject Dim charGraph As Chart Set charGraph = objChart.Chart charGraph.ChartType = xlXYScatterLinesNoMarkers charGraph.HasLegend = True 複数ノーマーカの曲線を描画します。 charGraph.SeriesCollection(counter).XValues = X charGraph.SeriesCollection(counter).Values = Y 一点だけのマーカの線を描画すると、目盛ライン枠が移動します。 以前書いた曲線は外枠にはみ出します。そのマーカの部分を コメントするすると、正常になります。マーカの曲線を書いても 同じ現象になります。 目盛ラインの設定は以下のようになります。 'X軸の設定 With charGraph.Axes(xlCategory) .MaximumScale = 18 .MinimumScale = 0 .MajorUnit = 1 .Crosses = xlAutomatic .ReversePlotOrder = False .ScaleType = xlLinear .DisplayUnit = xlNone .HasMajorGridlines = True .HasMinorGridlines = False .TickLabels.Font.Size = 10.25 .TickLabels.NumberFormatLocal = "0_ " With .MajorGridlines.Border .ColorIndex = 57 .Weight = xlHairline .LineStyle = xlDot End With End With 'Y軸の設定 With charGraph.Axes(xlValue) .MinimumScale = 0.4 .MaximumScale = 1.6 .MajorUnit = 0.1 .Crosses = xlAutomatic .ReversePlotOrder = False .ScaleType = xlLinear .DisplayUnit = xlNone .HasMajorGridlines = True .HasMinorGridlines = False .TickLabels.Font.Size = 10.25 .TickLabels.NumberFormatLocal = "0.0" With .MajorGridlines.Border .ColorIndex = 57 .Weight = xlHairline .LineStyle = xlDot End With End With '凡例の設定 With charGraph.Legend .AutoScaleFont = False .Font.Size = 10.25 End With どうぞ、よろしくお願いします。

  • エクセルVBA、フリーフォームで円を描画したい

    円の方程式 X = r * Sin(θ)、Y = r * Cos(θ)を使い、フリーフォームで円を描こうと思い、下記のマクロを書きました。 まず、最初からつまずきました。 マクロ名をSub Circleにしたらそれだけでエラー。 VBAにCircleという関数か何かあるのですか? 次に下記に名前を変えて実行したら、実行時エラー1004「アプリケーションまたはオブジェクトの定義エラー」だそうです。ためしにX0、Y0を100にしたらエラーは出ませんがスタートの座標100、100から円までの軌跡と円に接するところが変になります。 フリーフォームで真円を描くにはどこをどう直せばいいでしょうか? Sub EN() r = 50 π = Application.WorksheetFunction.Pi() ' X0 = 100 ' Y0 = 100 X0 = r * Sin(0) + 100 Y0 = r * Cos(0) + 100 With ActiveSheet.Shapes.BuildFreeform(msoEditingAuto, X0, Y0) For θ = 0 To π * 2 Step π * 2 / 360 X = r * Sin(θ) + 100 Y = r * Cos(θ) + 100 .AddNodes msoSegmentCurve, msoEditingAuto, X, Y DoEvents Next .ConvertToShape.Select'ここがエラー End With End Sub

  • VBA

    次のように偏差値を求めるプログラムを書くと、アプリケーションの定義エラーと表示されます。誰か理由をお教えください。 Sub hensati() With Worksheets("C") For i = 2 To 43 x = Cells(G, 1) y = Cells(G, 2) Cells(i, 3) = (Cells(i, 2) - x) / y * 10 + 50 Next i End With End Sub

  • アルゴリズム : 円描画

    画像を作ってるのですが、円描画のまともな方法が分かりません。 現在は、数学っぽいサイトを検索した所円の方程式は r2乗 = X2乗 + Y2乗 と言うのが出てきたのでそれを元に作ってます。 具体的には、y軸に近い部分はx軸から。x軸に近い部分はy軸から描画を始め、 それそれ8回に分けて一つの円を描画しまてす。 イメージ的には rを定数とし、y軸の直下や真上付近ならx軸を一つづつずらし、yの値を求めます。 x軸の右側付近とかならy軸をずらします。 数学風に書くと y ** 2 = (x + n) ** 2 + r ** 2 みたいなイメージです。(n = 何個目のドットを描画しているか。**はPerlなどでべき乗)。 これの平方根を求めて端数を四捨五入してます。 この方法だと軸から遠ざかると塗りつぶすドットが飛び飛びになるので8回(もしくは4回)の描画が必要です。 問題はまず、 それが一般的な方法かどうかと言う点です。8回に分けるもんだから処理が汚いです。 さらになぜか、円も汚いです。 いや理由はだいたい分かるんですけど、ドット数に少数点とかないから四捨五入とかしてます。 すると、どうもちゃんとした円にならないです。そこドットの描画一個ズレてるだろコレ? おまえそれ、明らかに1ドットずらしたほうが綺麗な円になるぞ? みたいことが起きます。 もう一つ、他の疑問なんですがちょっと数学的な疑問で、 円を1/8づつ描画させるにはnのループ回数を n = r / (1.4140 < m < 1.4146) くらいの値に設定しなきゃならないことが分かりました。 なぜ割り算させたのかはもう覚えてません。 一つづつ手作業で確かめて絞り込んだ数値なのですが、 どうもmが2の平方根に似ている気がします。 なぜこうなるんでしょう。たぶん数学的な何かだと思うのですが。 なお数学的な知識は全然ないです。学校では一日中寝るのが特技でした。 まさかこんな技術が必要になるとは…。

  • 描画

    DirectXで扇形を描画する質問です。 60度の角度で上方向に扇形を描画さしたいのですが(円弧の方が上) 開始地点は275から半径50の扇形を描画さしたいのですが pD3Device->SetTexture(0, pTexture[0]); pt[0].x = 250.0f; pt[1].x = 300.0f; pt[3].x = 275.0f; pt[2].x = 275.0f; pt[0].y = 225.0f; pt[1].y = 225.0f; pt[2].y = 275.0f; pt[3].y = 275.0f; pt[0].tu = pt[3].tu = 0.0f  / 1024; pt[1].tu = pt[2].tu = 200.0f / 1024; pt[0].tv = pt[1].tv = 0.0f  / 1024; pt[2].tv = pt[3].tv = 200.0f / 1024; pD3Device->DrawPrimitiveUP(D3DPT_TRIANGLEFAN,2,pt,sizeof(CUSTOMVERTEX)); このままでは、斜面が50の三角形ができただけで・・・ pt[0].xとpt[1].xは、ただ単に50とゆうだけで角度で表していないので場所は変わるかと思いますがpt[2].xとpt[3].xは275から開始でお願いします。 これを扇形にしたいのですが、どなたかご教示ください。お願いします。

  • syntax error 一行で書くと

    複数行で記述してあった箇所を、試しに一行にしてみたら、syntax errorとなりました。 改行した方が見やすいとは思うのですが、一行で書くときは、どうやればよいのでしょうか。 ■正常に動く class Foo __def print3 ____yield(1,2) __end end foo=Foo.new foo.print3{|x,y //この部分を一行にしてみたかったのですが、 __print x,"\n" __print y,"\n" } ■エラーとなる class Foo __def print3 (略) foo.print3{|x,y|print x,"\n" print y,"\n"} //←この行を直したいのですが、 (irb): syntax error, unexpected tIDENTIFIER, expecting '}'

    • ベストアンサー
    • Ruby
  • 配列のエラーに関して

    java言語を用いて,Householder変換を用いた固有値の数値計算に挑戦してみました.しかし,次のようなエラーが発生し上手くいきません.どなたかこの問題を解決するためにお力をかしていただけないでしょうか. ----------エラー内容-------------------------------------------------------------------------------- Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 0 out of bounds for length 0 at Out.Mhouse(House.java:90) at House.main(House.java:10) ---------------------------------------------------------------------------------------------------- //Householder変換 public class House{ public static void main(String[] args){ double[][] A = new double[3][3]; int n = A.length; Out out = new Out(); for(int i = 0;i < n;i++){ for(int j = 0;j < n;j++){ if(j < n-1){ System.out.print(out.Mhouse(A)[i][j] + " "); }else if (j == n-1) System.out.println(out.Mhouse(A)[i][j]); }; }; }; }; class Out{ double[][] outpro(double[] x){ int n; n = x.length; double[][] A = new double[n][n]; for(int i = 0;i < n;i++ ){ for(int j = 0;j < n;j++){ A[i][j] = x[i] * x[j]; } } return A; }; double[][] Msca(double a,double[][] A){ int n = A.length; for(int i = 0;i < n; i++){ for(int j = 0;j < n;j++){ A[i][j] = a * A[i][j]; } } return A; }; double selfpro(double[] x){ double a = 0; int n = x.length; for(int i = 0;i < n; i++){ a = a + x[i] * x[i]; }; return a; }; double[] minus(double[] x, double[] y){ int n = x.length; double[] z = new double[n]; for(int i = 0;i < n;i++){ z[i] = x[i] - y[i]; }; return z; }; double[][] house_1(double[] x){ int n = x.length; double[][] A = new double[n][n]; for(int i=0;i < n;i++){ for(int j = 0;j < n;j++){ if(i == j){ A[i][j] = 1 - Msca(2/selfpro(x),outpro(x))[i][j]; }else{ A[i][j] = - Msca(2/selfpro(x),outpro(x))[i][j]; }; }; }; return A; }; double[][] house_2(double[] x){ double[][] z = new double[1][1]; z[1][1] = 1 - 2; return z; }; double[][] Mhouse(double[][] A){ int n = A.length; double[][] H = new double[n][n]; for(int i = 0;i < n;i++){ double[] x = new double[n-i]; double[] y = new double[n-i]; double[][][] L = new double[i][n-i][n-i]; for(int j = 0;j < n-i;j++){ x[j] = A[i][i+j]; if(j == 0){ y[j] = 1; }else{ y[j] = 0; }; x[j] = y[j] - x[j]; }; if(i < n-1){ L[i] = house_1(x); for(int k = 0;k < n-i;k++){ for(int l = 0;l < n-i;l++){ H[i+k][i+l] = L[i][k][l]; }; }; }else if(i == n-1){ L[i] = house_2(x); for(int k = 0;k < n-i;k++){ for(int l = 0;l < n-i;l++){ H[i+k][i+l] = L[i][k][l]; }; }; }; }; double[][] B = new double[n][n]; for(int i = 0;i < n;i++){ for(int j = 0;j < n;j++){ for(int k = 0;k < n;k++){ B[i][j] = H[i][k] * A[k][j]; }; }; }; return A; }; };

    • ベストアンサー
    • Java
  • scilabについて

    scilabについて scilabで x=y/tan(%pi*(n+y/0.1))という式をグラフにしたいんですが、書いたプログラムが動きません。エラーはないはずですが... for n=-50:50; y=[-100:5:100]; deff('[x]=f(x)','x=y/tan(%pi*(n+y/0.1))'); if tan(%pi*(n+y/0.1))<>0 then; fplot2d(y,f) end end ちなみにnは-50から50の変数です。 どなたか原因を教えてください。お願いします。

専門家に質問してみよう