プルダウンメニューから選択した言語のコードを表示する。
成果物

手順
- 文書を作成する
- 使ってみる
1. 文書を作成する
文書
| 項目 | 値 |
|---|---|
| ファイル名 | hello_world_code_maker.ods |
| シート名 | maker, codes |
セル範囲名
| 名前 | 参照範囲または数式 |
|---|---|
Languages |
OFFSET($codes.$B$2,0,0,COUNTA($codes.$B:$codes.$B)) |
Codes |
OFFSET($codes.$C$2,0,0,COUNTA($codes.$C:$codes.$C)) |
OFFSET(参照; 行数; 列数; 縦; 横)COUNTA(値1; 値2; … 値30)
makerシート
| セル | 値 | 入力規則 |
|---|---|---|
B2 |
セルの範囲。Languages |
|
B3 |
=INDEX(Codes,MATCH($B$2,Languages,0),0) |
INDEX(範囲, 行, 列)MATCH(検索基準, 検査範囲, タイプ)
この関数を使う所が難しい。戻り値や型がわからないから関数の仕様を把握することすら困難。全関数を把握した上で、やりたいことをやるのに、どの関数を、どう組み合わせるべきか考えねばならない。
codesシート
Group,Language,Code
Programming,C,"#include <stdio.h>
main( )
{
printf(""hello, world\n"");
}"
Programming,C++,"#include <iostream>
using namespace std;
int main(){
cout << ""Hello world."" << endl;
return 0;
}"
Programming,Rust,"fn main() {
// 世界よ、こんにちは
Println!(""Hello, world!"");
}"
Programming,C#,"using System;
public class Hello{
public static void Main(){
Console.WriteLine(""hello world!"");
}
}"
Programming,Java,"class HelloWorld {
public static void main(String[] args) {
System.out.println(""Hello, world."");
}
}"
Script,Python,"print(""Hello world!"")"
Script,Ruby,"print ""Hello World"""
,Go,"package main
import ""fmt""
func main() {
fmt.Printf(""Hello world\n"")
}"
DomainSpecific,Bash,echo ‘Hello World’
DomainSpecific,SQL,"create table T(id int primary key);
insert into T values(0),(1),(2);
select * from T where id=0;"
Markup,HTML,"<!doctype html>
<html>
<head>
<meta charset=""utf-8"">
<title></title>
<link rel=""stylesheet"" href=""css/main.css"">
<script src=""js/main.js""></script>
</head>
<body>
</body>
</html>"
Markup,Markdown,# Hello world
- 上記テキストをコピーする
- セル
A1にフォーカスする Ctrl+Vキーを押下してペーストする区切りのオプションのコンマにチェックを入れるOKボタンをクリックする
2. 使ってみる
makerシートのセルB2のプルダウンメニューから任意の言語を選ぶ- セル
B3にコードが表示される

問題
- プルダウンメニューだけ操作できるようにしたいができない
- シート保護するとプルダウンメニューまで操作できなくなる
- プルダウンメニューを変更したとき、コード内容をクリップボードにコピーしたいができない
- 入力規則のイベントはキャッチできないと思われる
- 他に方法はあるのか不明
- クリップボードにコピーできるか不明
- マクロならできるのか不明
- イベントキャッチしてマクロと連動させる方法はあるのか不明
- 入力規則のイベントはキャッチできないと思われる
所感
UIをもっといい感じにしたい。調べるとフォームコントロールやXFormsなどというキーワードを見つけた。イジって解析するしかないか……。
対象環境
- Raspbierry pi 4 Model B
- Raspberry Pi OS buster 10.0 2020-08-20 ※
- bash 5.0.3(1)-release
- LibreOffice 6.1.5.2 ※ ※ Help
$ uname -a Linux raspberrypi 5.4.51-v7l+ #1333 SMP Mon Aug 10 16:51:40 BST 2020 armv7l GNU/Linux