No.5ベストアンサー
- 回答日時:
テキストBOXなどのプロパティを使用すれば簡単にできるような気がします。
テキストBOX以外でも複数行表示や中央揃えができるオブジェクトなら応用可能
だとおもいます。
スペースで補正するやり方は、フォントなどに左右されます。Pが付いてるフォントは避けたほうがいいと思います。
一応サンプルコード書いときます。
オブジェクト
========= ==============
Form Form1
TextBox Text1
Text2
Command
Button Command1
Command2
Command3
Command4
プロパティ設定
'Text1.MultiLine を設計時にTrue
'Text1.Alignment を設計時に中央
'Text2.MultiLine を設計時にTrue
'Text2.Alignment を設計時に左
ソース
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
Option Explicit
'※※※※※※※※※※※※※※※※※
'ボタンのクリック7編テキストボックスのプロパティ使用版
'※※※※※※※※※※※※※※※※※
Private Sub Command1_Click()
Call FlTextBoxP(7)
End Sub
'※※※※※※※※※※※※※※※※※
'ボタンのクリック8編テキストボックスのプロパティ使用版
'※※※※※※※※※※※※※※※※※
Private Sub Command2_Click()
Call FlTextBoxP(8)
End Sub
'※※※※※※※※※※※※※※※※※
'ボタンのクリック7編スペース使用版
'※※※※※※※※※※※※※※※※※
Private Sub Command3_Click()
Call FlTextBoxS(7)
End Sub
'※※※※※※※※※※※※※※※※※
'ボタンのクリック8編スペース使用版
'※※※※※※※※※※※※※※※※※
Private Sub Command4_Click()
Call FlTextBoxS(8)
End Sub
'※※※※※※※※※※※※※※※※※
'テキストボックスのプロパティ使用版
'※※※※※※※※※※※※※※※※※
Private Function FlTextBoxP(ByVal vlStrLen As Long) As Long
Dim lCnt As Long
'Text1.MultiLine を設計時にTrue
'Text1.Alignment を設計時に中央
Text1.Text = "" 'クリア
lCnt = vlStrLen 'ループカウント
Do Until lCnt <= 0
'初回以外改行を加える
If Text1.Text <> "" Then
Text1.Text = vbCrLf & Text1.Text
End If
'残りカウント分*を表示
Text1.Text = String(lCnt, "*") & Text1.Text
'カウント減算
lCnt = lCnt - 1
Loop
End Function
'※※※※※※※※※※※※※※※※※
'テキストボックスのスペース使用版
'※※※※※※※※※※※※※※※※※
Private Function FlTextBoxS(ByVal vlStrLen As Long) As Long
Dim lwCnt As Long
Dim lCnt As Long
Dim sSpaceStr As String
Dim sPrintStr As String
'Text2.MultiLine を設計時にTrue
'Text2.Alignment を設計時に左
Text2.Font = "MS ゴシック"
Text2.Text = "" 'クリア
lCnt = vlStrLen 'ループカウント
Do Until lCnt <= 0
'初回以外改行を加える
If Text2.Text <> "" Then
Text2.Text = vbCrLf & Text2.Text
End If
sSpaceStr = ""
If vlStrLen - lCnt <> 0 Then
sSpaceStr = String(vlStrLen - lCnt, " ")
End If
sPrintStr = String(lCnt, "*")
Text2.Text = sSpaceStr & sPrintStr & Text2.Text
'カウント減算
lCnt = lCnt - 1
Loop
End Function
No.4
- 回答日時:
*
**
***
****
*****
******
*******
********
このような、物を作るロジックは次のとおり。
半角スペースと全角スペースをうまくつなげることで、実現しています。
Form1にテキストボックス(Text1)をはりつけて、フォーム部分をクリックすると、
テキストボックスに文字のピラミッドが入ります。
あらかじめ、テキストボックスのプロパティーMultiLineをTrueにしておいてください。
Private Sub Form_Click()
Dim i As Long
Dim n As Long
Dim str As String
n = 8 '←ここで段数を決めています。
str = ""
For i = 1 To n
If (i / 2) = CInt((i / 2)) Then
str = str & String$(n - (i / 2), " ") & String$(i, "*") & n - (i / 2) & vbCrLf
Else
str = str & " " & String$(n - Fix(i / 2) - 1, " ") & String$(i, "*") & n - (i / 2) & vbCrLf
End If
Next
Text1.Text = str
End Sub
計算結果が.5の場合に半角スペースに返るようにロジックをくんだだけです。
参考になりましたか?
No.2
- 回答日時:
こんにちは、honiyonです。
□□□■
□□■■■
□■■■■■
■■■■■■■
黒が*、白がスペースだと考えてください。
何か思い浮かびませんか?
スペースはいくつずつ減少していますか?*はいくつずつ増加していますか?
どんな計算をすれば良いか思い浮かびませんか?
参考になれば幸いです(..
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 人類学・考古学 大発見?童謡『こいのぼり』と『背くらべ』は伴にエジプトのピラミッド建造の様子を謳っているいたんだね。 4 2022/05/21 11:41
- Access(アクセス) capeofdragonと申します。 Access2016を使っております。 あるフォームがあり、テ 2 2022/09/09 13:18
- その他(家族・家庭) 先祖を辿っていったら初代の男女にたどり着けるでしょうか? 男女が子を産んで、孫、ひ孫、玄孫、と、 ピ 5 2023/05/08 22:31
- 数学 ピラミッド計算の仕方を教えて下さい。 5 2023/01/03 16:04
- Visual Basic(VBA) VBでExcelの表形式の様なデザインを作りDBと連携させる。 4 2023/02/28 11:39
- MySQL 下記の問合せを行うクエリを、PhpMyAdminで作成して実行せよ。 日本の全市区町村を人口密度が低 1 2023/06/18 19:51
- MySQL SQLです。こんな感じですか?あってますか? うまくいきません教えてくださいお願いします 1 2023/07/08 15:27
- CGI サイト訪問者の情報を取得したい 1 2023/02/21 11:03
- MySQL うまくいきません教えてくださいお願いしますSQLです。クエリ構文です。 1 2023/07/07 12:39
- Visual Basic(VBA) VBプロジェクトでのフォルダ構成について 1 2023/07/22 03:49
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel VBA 見本通りに...
-
JavascriptでIMEのON,OFF制御
-
ホームページ制作でコピーライ...
-
cssのcharsetShift_JISUTF8
-
stray '\\240' in programのエ...
-
改行をなくする方法
-
AfterEffectsでイージーイーズ...
-
指定URLを新しいウィンドウで開...
-
XMLを作成してもタグしか表示さ...
-
長いURLを途中で改行(折り返す...
-
H1タグに改行の<br>を使う
-
\\n \\r \\t について
-
GoogleChromeでレイアウトが左...
-
リンク先のURLを非表示にし...
-
テーブルの幅を固定するとnowra...
-
HTMLのバージョンの確認方法は?
-
動画aviファイルのHTML組み...
-
HTMLとXHTML
-
ブラウザでのタイ語の改行について
-
ツールチップの表示時間の調整
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel VBA 見本通りに...
-
ASP.NET TextBox 入力制限
-
JavascriptでIMEのON,OFF制御
-
ASCII文字列以外を検出する正規...
-
C#のシリアル通信プログラムで...
-
stray '\\240' in programのエ...
-
Pythonの勉強を始めました。バ...
-
ソースコードの改行文字は何に...
-
ボタンコントロールのTEXT...
-
ホームページ制作でコピーライ...
-
なぜtabによるインデントはいけ...
-
教えてください
-
JSONパース時に改行があるとエ...
-
accesskeyに使える文字を全部教...
-
Eclipseの空白が変な...
-
入力されたテキストが、全角か...
-
超初心者です。「順次実行」練...
-
JSで全角英数記号を半角英数記...
-
ローマ数字などの文字化け対策...
-
Firefoxでのテキストエリアに入...
おすすめ情報